如何更改Firebase函数的环境变量(functions.config()),而无需从cli重新部署该函数

时间:2019-01-02 14:51:13

标签: javascript firebase google-cloud-platform environment-variables google-cloud-functions

我正在尝试使用firebase函数环境的functions.config()变量,以便能够根据此变量是否设置为true / false来打开/关闭日志。我已经创建了它,但是它似乎基于来自以下链接(https://firebase.google.com/docs/functions/config-env#additional_environment_commands)的信息,使用firebase functions:config:set命令更改后,只有重新部署函数后才能更改它环境变量优先。

但是,似乎可以通过使用--set-env-vars命令(以及用于访问env。变量的不同语法)使用gcloud functions命令来部署功能(gcloud部署而不是firebase部署)来实现。 )。然后,只需在GCP控制台上导航至特定功能,然后转到EDIT-> MORE并更改底部的Environment变量,即可轻松更改此环境变量。 来源:
https://cloud.google.com/functions/docs/env-var

所以我的问题是:是否有类似的方法来更改firebase functions.config()变量而无需从cli重新部署该函数?

2 个答案:

答案 0 :(得分:1)

更新:(提供给道格·史蒂文森) 显然,更改环境变量的唯一方法是进行部署。

原始答案: 您可以用相同的方法进行操作。 基本上每个Firebase Cloud Function都是Google Cloud Function,可以从GCP控制台以相同的方式访问。 GCP控制台中还提供了每个Firebase Cloud Function,您可以在其中轻松编辑环境变量,就像您在问题中所描述的那样。

答案 1 :(得分:0)

Andrii 是完全正确的 - 您必须部署函数才能更新环境变量。

但是,我只是想发布一个快速的技巧,以防您有一些 CI/CD 作业并且您没有真正手动部署您的功能。

在这种情况下,我所做的虽然有点乏味,但如下:

  1. 添加某种模拟功能,例如
exports.helloWorld = functions
  .https.onRequest((req, res) => res.status(200).json({ message: 'Great success!' }))
  1. 我运行 firebase deploy --only functions:helloWorld 以确保我仅部署此函数以防止破坏当前在生产中使用的函数。
  2. 转到 Firebase Console,打开项目的 Functions 部分并删除 helloWorld