javascript - Firebase 和 React js - Firebase : Firebase App named '[DEFAULT]' already exists (app/duplicate-app)

标签 javascript reactjs firebase

首先,我浏览了我的代码,没有看到我可能不止一次初始化应用程序的地方(除非我遗漏了一些东西)。

我知道这个问题之前已经被问过并得到了回答,但我不确定如何将解决方案应用于我自己的代码,因为我刚刚开始使用 Firebase。

我得到的错误是:名为“[DEFAULT]”的 Firebase 应用程序已经存在(app/duplicate-app)。

这是我的配置组件:

     export const DB_CONFIG = {
      apiKey: "AIzaSyDj_UQoRkOWehv-Ox2IAphOQPqciE6jL6I",
      authDomain: "react-notes-38f8a.firebaseapp.com",
      databaseURL: "https://react-notes-38f8a.firebaseio.com",
      projectId: "react-notes-38f8a",
      storageBucket: "react-notes-38f8a.appspot.com",
      messagingSenderId: "1063805843776"
    };

这是 App.js
      constructor(props){
      super(props);
      this.app = firebase.initializeApp(DB_CONFIG);
      this.database = this.app.database().ref.child('notes')
      this.state = {
        notes: [
        ],
      }
    }

  componentWillMount(){
    const previousNotes = this.state.notes;
    this.database.on('child_added', snap => {
      previousNotes.push({
        id: snap.key,
        noteContent: snap.val().noteContent
      })
    })
    this.setState({
      notes: previousNotes
    })
  }

最佳答案

很容易解决

Initialize Firebase in Conditional Block.

if(!firebase.apps.length)
   firebase.initializeApp(DB_CONFIG);
分析:如果我们 不会执行“初始化 Firebase”条件 block 内它只是得到对重新初始化感到困惑 至今。
附加说明:这个问题是不相关 配置组件,并且出于安全目的,我们应该尽量不泄露 Firebase 配置凭据。

关于javascript - Firebase 和 React js - Firebase : Firebase App named '[DEFAULT]' already exists (app/duplicate-app),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055197/

相关文章:

Javascript 在包含数据的页面之间导航

java - 如何将倒计时器添加到 Firebase 中?

swift - 如何在 firebase 数据中显示嵌套对象

firebase - 在 vuex 操作中访问 this.$fireStore (Nuxt.js)

javascript - 分配给原型(prototype)属性不应该在原型(prototype)上覆盖它吗?

javascript - 使用 && 代替 IF 语句

javascript - 使用异步方法测试 React 组件

reactjs - 使用 React Hooks 重置为初始状态

javascript - React 无状态示例

Javascript 按姓氏对字符串数组进行排序