Firebase反复初始化ReactJS

时间:2018-09-08 17:05:13

标签: reactjs firebase

每次我加载页面或路由到任何地方时,都会调用firebase.initializeApp()。该if块中的第一个console.log声明了firebase.apps: [],第二个是实际填充的对象,而且我不知道为什么每次InitFirebase时firebase.apps的内容都为空.js被调用,或者为什么首先被多次调用。

我最初将它与其余的auth方法保存在一个文件中,并且我认为每当我调用静态方法时,它都在调用文件的其余部分,但是即使将其分离到自己的文件中,它仍然会调用每当我加载页面,重新加载页面或路由到页面中的其他路由时。

我在网上找到的所有内容都表明,firebase.initializeApp()的多个呼叫可以用if(!firebase.apps.length)来解决,但在这里似乎不起作用。我在这里缺少与导入或反应的交互吗?我该如何解决?

App.js

import React, { Component } from 'react';
import {BrowserRouter, Switch, Route} from 'react-router-dom';
import './App.css';
import * as InitFirebase from './auth/InitFirebase';
import Register from './auth/Register';

class App extends Component {
  render() {
    return (
      <BrowserRouter>
        <div className="App">
          <Switch>
            <Route exact path="/register" component={Register}/>
          </Switch>
        </div>
      </BrowserRouter>

    );
  }
}

export default App;

InitFirebase.js

import firebase from 'firebase';

var config = {
    //Private Info
};
if (!firebase.apps.length) {
    console.log("firebase apps before:", firebase.apps);
    firebase.initializeApp(config);
    console.log("firebase apps after:", firebase.apps);
}

0 个答案:

没有答案