我正在将我的一些firebase-queue工作人员转移到Firebase函数。我使用process.env.NODE_ENV为工作人员设置了一些配置,具体取决于运行它们的环境。是否有一种方法在部署函数时设置函数的NODE_ENV。据我所知,提供此类配置选项的推荐方法是通过firebase.config.set,我已经验证了它的工作原理,但只想检查是否也有一种设置NODE_ENV的方法。当我试图打印函数内部的NODE_ENV时,它总是被设置为production。
发布于 2019-09-02 13:03:12
发布于 2019-03-16 02:11:33
目前无法设置自定义环境变量(如process.env.NODE_ENV )。您想要做的事情只能用于Google函数,您需要使用gcloud命令行工具。
其他选项
如果您正在专门为Firebase开发并且需要类似的解决方案,那么有一些选项。
基于项目ID的条件
如果您有测试、暂存和生产项目,并且希望根据环境有不同的行为或日志记录,则可以访问项目id。
process.env.GCLOUD_PROJECT被设置为GCP项目ID,因此您可以在此基础上构建逻辑。
if (process.env.GCLOUD_PROJECT === 'my-production-project') {
// Only in production
} else {
// Do something for the test environments
}云函数环境变量
正如您已经提到的,还有云函数环境变量。您可以在构建/部署时有效地创建正在配置环境配置的构建管道,然后在云功能中访问它们。
- firebase functions:config:set runtime.env="production" --token $FIREBASE_DEPLOY_KEY访问配置实际上与您的process.env相同,但不能在云函数范围之外访问(也就是说,您不能在全局变量声明中使用它)。
if (functions.config().runtime.env === 'production') {
// Only in production
} else {
// Do something for the test environments
}发布于 2019-06-16 19:26:23
在我回答这个问题的时候,提供了内置的环境配置,是现成的。
设置项目的环境配置
$ firebase functions:config:set [values...]示例
$ firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"获取项目的环境配置
$ firebase functions:config:get [path]示例
const functions = require('firebase-functions')
console.log(functions.config().someservice.id)https://stackoverflow.com/questions/43139959
复制相似问题