首页 > 解决方案 > Firebase 和 React js - Firebase:名为“[DEFAULT]”的 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
    })
  }

标签: javascriptreactjsfirebase

解决方案


很容易解决

在条件块中初始化 Firebase。

if(!firebase.apps.length)
   firebase.initializeApp(DB_CONFIG);

分析:如果我们不在条件块内执行“Initializing Firebase” ,那么到目前为止它只会被重新初始化弄糊涂。

附加说明:此问题与配置组件无关,出于安全目的,我们应尽量不要泄露 Firebase 配置凭据。


推荐阅读