如何同时使用Firebase身份验证和实时数据库



现在我正在进行一个REACT项目,我想使用firebase。起初,我使用Firebase身份验证,它运行良好。

const firebaseConfig = {
apiKey: '----',
authDomain: '----',
projectId: '----',
storageBucket: '----',
messagingSenderId: '----',
appId: '----',
measurementId: '----',
}
const app = initializeApp(firebaseConfig)
const auth = getAuth(app)
export auth

但当我添加databaseURL时,它显示错误

const firebaseConfig = {
apiKey: '----',
authDomain: '----',
projectId: '----',
databaseURL: '----',
storageBucket: '----',
messagingSenderId: '----',
appId: '----',
measurementId: '----',
}
error - FirebaseError: Firebase: Firebase App named '[DEFAULT]' already exists with different options or config (app/duplicate-app).
at initializeApp (file:///C:/Users/User/Desktop/MUICT/Year%204/Sem%201/Practical%20Se/mutelu/node_modules/@firebase/app/dist/esm/index.esm2017.js:433:33)
at eval (webpack-internal:///./firebase/config.js:35:72) {
code: 'app/duplicate-app',
customData: { appName: '[DEFAULT]' },
page: '/searchAmulet'
}

那么我该如何解决这个问题

我试着使用getApps(),但它不起作用,plz帮助

如果您有一个Firebase项目,那么您应该只在代码中运行initializeApp一次。如果您需要数据库URL,请确保在调用initializeApp时立即包含该URL。

如果你需要从你的应用程序访问多个Firebase项目(这相对不常见(,你可以通过显式地为它们命名来实现。虽然只能有[DEFAULT]项目,但可以有多个命名项目——只要它们都有唯一的名称。有关此方面的更多信息,请参阅有关配置多个项目的文档。

最后,由于这是关于实时数据库的,您也可以将databaseURL完全排除在配置之外,而是在获得数据库实例时将该URL传递给API:

const db = getDatabase(getApp(), "your database URL");

最新更新