我正在尝试使用firebase函数环境的functions.config()变量,以便能够根据此变量是否设置为true/false来打开/关闭日志。我已经创建了它,但它似乎是基于以下链接中的信息(https://firebase.google.com/docs/functions/config-env#additional_environment_commands),只有在使用firebase functions:config:set命令首先更改环境变量后,重新部署该函数才能更改它。
不过,似乎可以通过使用gcloud functions命令来部署函数(gcloud deploy而不是firebase deploy),使用--set env-vars命令(以及访问env.variable的不同语法)来实现。然后,只需在GCP控制台导航到特定函数,然后转到EDIT->MORE并在底部更改环境变量,即可轻松更改该环境变量的值。来源:
https://cloud.google.com/functions/docs/env-var
所以我的问题是:有没有类似的方法可以在不从cli重新部署函数的情况下更改firebase functions.config()变量?
更新:(归功于Doug Stevenson)显然,更改环境变量的唯一方法是进行部署。
原答覆:你可以用同样的方法。基本上,每个Firebase云功能都是谷歌云功能,可以通过GCP控制台以相同的方式访问。每个Firebase云功能也出现在GCP控制台中,在那里你可以很容易地编辑环境变量,就像你在问题中描述的那样)
只需添加到Andrii的答案中,就需要重新部署任何需要新配置的函数。每个部署的函数都与所有其他函数隔离,因此在没有重新部署的情况下不会获得配置更新。
Andrii完全正确-您必须部署您的函数才能更新环境变量。
然而,我只是想发布一个快速破解,以防你有一些CI/CD作业,并且你没有真正手动部署你的功能。
在这种情况下,我所做的虽然有点乏味,但如下所示:
- 添加某种mock函数,例如
exports.helloWorld = functions
.https.onRequest((req, res) => res.status(200).json({ message: 'Great success!' }))
- 我运行
firebase deploy --only functions:helloWorld
以确保我只部署此函数以防止破坏当前在生产中使用的函数 - 转到Firebase控制台,打开项目的"函数"部分并删除
helloWorld