【发布时间】:2020-04-30 18:13:30
【问题描述】:
我正在构建一个 Express.js 应用,将 Firebase Admin SDK 用于 ID 令牌验证和 Cloud Firestore 访问等多项功能。在我的主 app.js 文件中,我将应用程序初始化为:
const admin = require('firebase-admin')
const serviceAccount = require('../config/account-credentials.json')
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://databaseurl.firebaseio.com'
})
在另一个文件中,我所做的只是导入:
const admin = require('firebase-admin')
我可以致电admin.auth().verifyIdToken 并验证 ID 令牌就好了。但是,当我打电话给app.database() 时,它抱怨应用程序从未初始化。再次初始化应用会产生一个新的错误提示:
默认 Firebase 应用已存在。这意味着您多次调用 initializeApp() 而不提供应用程序名称作为第二个参数。在大多数情况下,您只需要调用一次 initializeApp()。但是,如果您确实要初始化多个应用程序,请将第二个参数传递给 initializeApp() 以给每个应用程序一个唯一的名称。
我是否需要创建多个具有不同名称的应用才能使其正常工作?或者我如何在整个项目中使用一个应用程序。
【问题讨论】:
-
您能否编辑问题并提供 MCVE(而不是仅仅几行)?请阅读:stackoverflow.com/help/minimal-reproducible-example
标签: node.js firebase firebase-realtime-database firebase-admin