【发布时间】:2019-12-05 16:16:01
【问题描述】:
我正在尝试在我的 React 项目中使用 firebase 来提供身份验证和数据库功能。
在我的App.js 我有
import app from "firebase/app";
import "firebase/auth";
app.initializeApp(firebaseConfig);
在由App.js 渲染的名为<Component /> 的其他组件中,我有这个来初始化数据库
import app from "firebase/app";
import "firebase/firestore";
const db = app.firestore();
但是这次我得到了这个错误
Uncaught FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).
所以我也尝试将app.initializeApp(firebaseConfig); 放入此组件中,但我再次收到一个新错误,告诉我我实例化了两次。
Uncaught FirebaseError: Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).
所以我想出的一种解决方法是在App.js 和app.initializeApp(firebaseConfig); 之后创建一个上下文,我通过const db = app.firestore(); 创建了数据库并将值传递给上下文并让<Component /> 使用。但是我不知道这是否是一个好的解决方案。
我的问题与How to check if a Firebase App is already initialized on Android 不同,原因之一。我没有尝试连接到第二个 Firebase 应用程序,因为它是针对那个问题的。我整个项目只有一个 Firebase App,提供两种服务:auth 和 database。
我尝试在<Component />中使用该问题的解决方案
if (!app.apps.length) {
app.initializeApp(firebaseConfig);
}
const db = app.firestore();
但它没有工作它仍然给我Uncaught FirebaseError: Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).错误
【问题讨论】:
-
能否请您添加有关在您的项目中使用 Firestore 的更多详细信息?我还在使用类似的用例,例如用于身份验证的 firebase 和用于存储的 firestore。
标签: javascript reactjs firebase google-cloud-firestore