【发布时间】:2020-01-05 21:46:02
【问题描述】:
我将 firebase 用于 auth 和 db,将 AWS lambda 用于云功能。
要将 firebase 添加到我的 JS 项目中,我将 initializeApp 使用 firebase 配置作为参数,如此处所述:https://firebase.google.com/docs/web/setup。
如此处所述:https://firebase.google.com/docs/admin/setup,我还需要在我的 lambda 函数中使用 initializeApp。
这里有如下内容:
const admin = require('firebase-admin');
const serviceAccount = require('../path/to/service-account.json');
const firebaseAdmin = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "dB_URL"
});
凭据来自 firebase-admin 库,因此我无法将其添加到我的 web firebase 配置中。所以,我需要初始化两次。
但是,如果我这样继续,服务器会抛出一个错误:
默认 Firebase 应用已存在。这意味着您多次调用 initializeApp() 而不提供应用程序名称作为第二个参数。在大多数情况下,您只需要调用一次 initializeApp()。但如果您确实要初始化多个应用程序,请将第二个参数传递给 initializeApp(),以便为每个应用程序指定一个唯一的名称。
我在这里遗漏了什么吗?最佳做法是什么?我很困惑。
似乎之前有人遇到过同样的问题:Use Firebase SDK with Netlify Lambda Functions
对这个用户有用的是使用此处记录的 REST API:https://firebase.google.com/docs/projects/api/workflow_set-up-and-manage-project
文档说它处于测试阶段。
感谢您的帮助
【问题讨论】:
标签: node.js firebase aws-lambda firebase-admin