Reactjs 获得;应用程序未定义;应用后出错";Firebase:Firebase应用程序名为';[默认]';已存在(应用程序/重复应用程序)。”;错误修复

Reactjs 获得;应用程序未定义;应用后出错";Firebase:Firebase应用程序名为';[默认]';已存在(应用程序/重复应用程序)。”;错误修复,reactjs,firebase,Reactjs,Firebase,起初,我发现“Firebase:Firebase应用程序名为“[DEFAULT]”已经存在(应用程序/重复应用程序)。”错误。我在网上看到用“if(!firebase.apps.length){}”包装firebase初始化可以解决这个问题。现在我得到一个错误,说“应用程序未定义”。我如何解决这个问题 import firebase from "firebase/app"; import "firebase/auth"; if (!firebase.ap

起初,我发现“Firebase:Firebase应用程序名为“[DEFAULT]”已经存在(应用程序/重复应用程序)。”错误。我在网上看到用“if(!firebase.apps.length){}”包装firebase初始化可以解决这个问题。现在我得到一个错误,说“应用程序未定义”。我如何解决这个问题

import firebase from "firebase/app";
import "firebase/auth";

if (!firebase.apps.length) {
    const app = firebase.initializeApp({
     apiKey: "process.env.REACT_APP_FIREBASE_API_KEY",
     authDomain: "process.env.REACT_APP_FIREBASE_AUTH_DOMAIN",
     projectId: "process.env.REACT_APP_FIREBASE_PROJECT_ID",
     storageBucket: "process.env.REACT_APP_FIREBASE_STORAGE_BUCKET",
     messagingSenderId: "process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID",
     appId: "process.env.REACT_APP_FIREBASE_APP_ID"
   });
}
export const auth = app.auth();
export default app;


我这样解决了这个问题:

 let firebaseApp ;

  if (!firebase.apps.length) {
     firebaseApp = firebase.initializeApp(firebaseConfig);
  }
  else {
    firebaseApp = firebase.app(); // if already initialized, use that one
  }

  export const auth = app.auth();
  export default app;

这里的问题是您正在定义
const-app=…
,但它只为
if
范围定义(这是它在js中的工作方式)。这就是为什么使用
let
初始化变量,然后为其赋值