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



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

我可以成功地将所有内容部署到"默认",并将除功能外的所有功能成功地部署到"暂存"。在部署到暂存时,我得到一个403错误。

我使用以下代码初始化我的firebase admin,该代码使用我的Service Account 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"的引用,该引用使用我的staging项目中的Service Account key.json,那么部署到staging也可以正常工作。

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

或者——我应该有更好的方法来处理这种情况吗?

理想情况下,我只想在CLI中使用"firebase use"在项目和部署之间切换,而不必更改代码。

您需要找到一种方法来利用Firebase CLI提供的环境配置。这允许您在部署中添加一些配置。如文件所述:

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

您当然可以将您的服务帐户凭据放在环境中,这样您就不必确定要部署哪个文件。为了更容易,可以考虑为每个部署目标(默认和暂存(编写一个部署脚本,以确定它们获得的值。

相关内容

  • 没有找到相关文章

最新更新