云功能可在多个Firebase项目上运行

时间:2020-05-02 20:30:40

标签: firebase google-cloud-functions

我有两个firebase项目(默认和暂存)。两者都在CLI中使用相同的别名进行初始化。

我可以将所有内容成功地部署到“默认”,而将所有功能都成功地部署到“登台”。部署到登台时出现403错误。

我使用以下代码初始化我的firebase管理员,该代码使用我的服务帐户key.json文件,因此我可以在本地运行函数。

// Import from Firebase
import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'

// Admin Init that supports localhost testing
const serviceAccount = require('../keys/default-key.json')
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
})

如果我手动更改对“ staging-key.json”的引用,该引用使用了我的登台项目中的服务帐户key.json,那么部署到该登台也可以正常工作。

我的问题:我是否也可以根据正在部署的项目自动更改引用的key.json文件?

或者-有更好的方法应对这种情况吗?

理想情况下,我只想在CLI中使用“ firebase用途”在项目和部署之间进行切换,而无需更改代码。

1 个答案:

答案 0 :(得分:0)

您将想找到一种方法来利用Firebase CLI提供的environment configuration。这使您可以向部署中添加一些配置。如文档所述:

通常,您需要对功能进行其他配置,例如第三方API密钥或可调整的设置。用于云功能的Firebase SDK提供了内置的环境配置,可轻松为您的项目存储和检索此类数据。

您当然可以在环境中放入您的服务帐户凭据,因此您不必弄清楚要部署哪个文件。为了简化操作,请考虑为每个部署目标(默认和暂存)编写一个部署脚本,以确定它们获得哪些值。