为什么firebase无法识别我的firebase实例? "致电Firebase App.intializeApp()"

时间:2018-05-03 21:36:37

标签: javascript firebase react-native firebase-authentication react-navigation

我有两个文件,一个data_in1=a.pnh data_in2=bb.pop data_in3=c c.oiu data_in4=_dd.pnh data_in5=e_e.pop data_in6=ff_.oiu data_out1=1 data_out2=22 data_out3=333 data_out4=4444 data_out5=55555 data_out6=666666 ,我在其中设置了我的React Navigation StackNavigator和我的firebase实例以及我登录用户的App.js

我正在尝试检测用户是否已登录(通过firebase持久登录)但由于某种原因,Login.js Login.js中未检测到我的firebase实例。这对我来说没有意义,因为在componentDidMount()的其他地方,我在我的firebase实例上调用了fxns,就像登录Google一样。

我应该如何安排firebase初始化/ auth检查以确保正确检测firebase实例以及持久性身份验证?

我已经看过这个question但是这个人似乎有一个不同的问题,因为他们只关心单个文件中的firebase实例。

Login.js

的相关部分
App.js

import { StackNavigator } from 'react-navigation'; import * as firebase from 'firebase'; import 'firebase/firestore'; import Login from './components/login'; const Application = StackNavigator({ Login: { screen: Login, navigationOptions: { title: 'Login', } }, SignUp: { screen: SignUp, navigationOptions: { title: 'Signup', } }, Home: { screen: Home, navigationOptions: { title: 'Home' } }, }); const firebaseConfig = { apiKey: "APIKEY", authDomain: "AUTH_DOMAIN", databaseURL: "DATABASE_URL", projectId: "PROJECT_ID", storageBucket: "BUCKET", } export default class App extends React.Component { componentDidMount(){ //if no instance exists, initialize one if (!firebase.apps.length) { firebase.initializeApp(firebaseConfig); } } render() { return ( <Application/> ); } }

的相关部分
Login.js

1 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所提到的,子组件在他们的父母之前安装。您的登录组件的componentDidMount发生在应用的componentDidMount之前。 Stack overflow question outlining the deets.

只是快速搜索,看起来大多数人在他们的组件之外firebase.initializeAppWas just reading this