Firebase函数具有两个项目的服务帐户



我有两个firebase项目,一个用于生产,另一个用于开发。我已经为两个项目创建了服务帐户密钥,并在我的函数文件夹中初始化管理员,如下所示:

const admin = require("firebase-admin");
const serviceAccount = require("./service-account.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: "some-app.appspot.com",
});
const db = admin.firestore();
module.exports = {
db,
admin,
};

但我需要firebase为每个项目使用合适的服务帐户。我的应用程序设置为在生产中部署时使用生产项目,但我设置admin.js(如上(的方式总是使用开发服务帐户凭据。

如何将服务帐户凭据设置为环境变量?有没有办法在控制台中添加firebase配置的密钥?或者我应该只在生产服务帐户中硬编码并接受它吗?

我在文档中找到了这个,但它似乎并不能解决我的问题。

serviceAccount = require('./serviceAccount.json');
const adminConfig = JSON.parse(process.env.FIREBASE_CONFIG);
adminConfig.credential = admin.credential.cert(serviceAccount);
admin.initializeApp(adminConfig);

我感谢你能提供的任何帮助。

您可以指定要在环境变量中使用的配置,如图所示,然后在代码中获取该配置。

在大多数情况下,这应该不是必要的,因为在没有参数的情况下调用admin.initializeApp()已经使用当前项目的管理凭据初始化了Admin SDK

最新更新