您如何根据环境为 Firebase Cloud Functions 设置变量?

时间:2021-07-14 16:17:23

标签: firebase google-cloud-functions

类似的问题 How do you setup local environment variables for Cloud Functions for Firebase,但特别关注如何设置开发和生产之间不同的环境变量。

例如, 假设我通常会:

.env

REACT_APP_DOMAIN:https://foo-bar.web.app/

.env.development

REACT_APP_DOMAIN:http://localhost:3000/

如何为 Firebase Cloud Functions 创建类似的设置?

1 个答案:

答案 0 :(得分:1)

我有自己的问题的答案,但我认为这不是最佳答案。

在 Firebase 的 local-emulator documentation 中,他们有这个部分:

<块引用>

设置功能配置(可选)

如果您使用自定义函数配置变量,请首先在本地环境中运行命令以获取自定义配置(在函数目录中运行):

firebase functions:config:get > .runtimeconfig.json

如果使用 Windows PowerShell,请将以上内容替换为:

firebase functions:config:get | ac .runtimeconfig.json

虽然解释得不好,但这只是创建了一个 json 文件 .runtimeconfig.json,其中包含您的 firebase 配置变量。此文件中的变量随后由 Firebase 模拟器使用,而不是存储在 Firestore 中的变量。这在 github repo ticket 中有更好的解释。

现在知道了这一点,.runtimeconfig.json 可以以与 .env.development 类似的方式使用。您可以根据需要手动更新它,而不是使用他们建议的命令(或使用他们的命令拉下您的 firebase 变量,然后根据需要修改它们)。

您访问/使用这些局部变量的方式与通常使用 access Firebase variablesfunctions.config().foo.bar 的方式完全相同。

部署后,他们将引用您在 Firebase 上设置的变量。在开发过程中(通过 firebase 模拟器),他们会引用您在 .runtimeconfig.json 中的内容。