首页 > 解决方案 > 捆绑失败:SyntaxError:JSON 输入在本机反应中意外结束

问题描述

我在我的react native 项目中使用了firebase。当我尝试使用电子邮件和密码注册用户时,此错误即将到来。我正在使用窗口操作系统并且只有安卓渲染

注意: 我已阅读与此相关的所有问题,但没有任何帮助

新手反应原生。请以适当的方式指导

包.json

"firebase": "^5.8.2",
    "native-base": "^2.11.0",
    "react": "16.6.3",
    "react-native": "^0.57.8",
    "react-native-elements": "^0.19.1",
    "react-native-firebase": "^5.2.2",
    "react-native-gesture-handler": "^1.0.15",
    "react-native-maps": "^0.23.0",
    "react-native-svg": "^8.0.10",
    "react-native-vector-icons": "^6.2.0",
    "react-navigation": "^3.2.1"

注册代码

import * as firebase from 'firebase'

//Intiazlize firebase
const firebaseConfig = {
    apiKey: "AIzaSyCUK5QkcvTcvfCKlbwnnI8GskIgcLGMcqA",
    authDomain: "trailertracker-da09c.firebaseapp.com",
    databaseURL: "https://trailertracker-da09c.firebaseio.com",
    projectId: "trailertracker-da09c",
    storageBucket: "",
}


firebase.initializeApp(firebaseConfig)

 signUpUser = (email,password) => {
        try{
            if(this.state.password.length < 6 ){
                alert("Please Enter Valid Email and Password")
                return
            }

            firebase.auth().createUserWithEmailAndPassword(email,password)

        } catch(err){
            console.log(err)
        }
    }

完全错误是

加载依赖图,完成。错误:捆绑失败:SyntaxError:在 FileStore.get (F:\React Native\ReactProjects\trailer-tracker\TrailerTracker\node_modules\metro-cache\src\stores\FileStore.js 的 JSON.parse () 处 JSON 输入意外结束:26:19) 在 F:\React Native\ReactProjects\trailer-tracker\TrailerTracker\node_modules\metro-cache\src\Cache.js:76:40 在 Generator.next () 在步骤 (F:\React Native\ ReactProjects\trailer-tracker\TrailerTracker\node_modules\metro-cache\src\Cache.js:18:30) 在 F:\React Native\ReactProjects\trailer-tracker\TrailerTracker\node_modules\metro-cache\src\Cache.js :37:14 at new Promise () at F:\React Native\ReactProjects\trailer-tracker\TrailerTracker\node_modules\metro-cache\src\Cache.js:15:12 at Cache.get (F:

这是firebase中的另一个错误或错误吗?

帮助将不胜感激

谢谢

标签: firebasereact-nativenpmfirebase-authentication

解决方案


在 react native 中开始使用 firebase。

添加firebase依赖

yarn add firebase

转到Firebase并创建一个新项目,然后转到将 Firebase 添加到您的 Web 应用程序部分

像这样为 Firebase 的配置创建一个类

import firebase from "@firebase/app";
require("firebase/database");
require("firebase/storage");
require("firebase/auth");

let config = {
  apiKey: "YOUR PROJECT apiKey",
  authDomain: "YOUR PROJECT authDomain",
  databaseURL: "YOUR PROJECT databaseURL",
  projectId: "XXXXXXXX",
  storageBucket: "",
  messagingSenderId: "XXXXXXXXXX",
  appId: "XXXXXXXXXXXXXXXXXXXXXXXX"
};

export default class DBHandler {
  static auth;
  static database;

  static init() {
    firebase.initializeApp(config);
    DBHandler.database = firebase.database();
    DBHandler.auth = firebase.auth();
  }
}

App.js中初始化 Firebase

import DBHanlder from "./src/api/constants";

export default class App extends Component {
  componentDidMount = () => {

    DBHanlder.init();
  };

  render() {
    return <YourApp />;
  }
}

你已经完成了初始化部分。现在你可以使用如下的身份验证

import DBHandler from "../api/constants";
class Login extends Component {

signinUser = () => {
DBHandler.auth.signInWithEmailAndPassword(email, password)
        .then(() => {
          //Do what you want
        })
        .catch((error) => {
          //handle error
          var errorCode = error.code;
          var errorMessage = error.message;
          alert(errorMessage);
          console.log("ERROR");
          console.log(errorCode, errorMessage);
        });
    }
}}

推荐阅读