gpt4 book ai didi

javascript - Firebase 函数配置不会部署

转载 作者:行者123 更新时间:2023-12-04 08:14:44 26 4
gpt4 key购买 nike

我正在尝试部署一个函数,该函数使用基于我在部署之前设置的环境变量的 firebase 配置变量。这适用于暂存(一个看起来几乎与生产相同的单独项目,除了几个环境变量),但在生产中失败并出现错误 TypeError: Cannot read property 'env' of undefined指向 functions.config().app.env (见下面的代码)。
如果我在 https://console.cloud.google.com/functions/details/us-central1/<functionName>?project=<projectName> 中在线浏览该功能.runtimeconfig.json文件似乎没有选择我在部署到生产之前设置的 env 变量,而它在登台时完美地做到了这一点。
如果我设置 app.env到“登台”,它非常适合我的登台环境,并且不会显示任何错误。我试过 cd - 进入functions文件夹以设置env变量,然后在部署之前退出,但它没有改变任何事情。我什至尝试将其写入 .runtimeconfig.json在函数文件夹中(尽管这应该只用于本地测试),但这也没有效果。
编辑 :经过一些更多的测试,发现 .runtimeconfig可以看到在线浏览功能代码时,是我通过CLI在本地设置的功能配置生成的,并在我部署时上传。每当我更新它时,它似乎都可以很好地复制到暂存区,但不会在生产中做同样的事情。我就是想不通为什么...
我的功能:

const functions = require('firebase-functions')
// Stripe needs to be set with its key when the library is being required
const stripe = require("stripe")(functions.config().app.env === 'staging' ? functions.config().stripe.key.staging : functions.config().stripe.key.production)
// ^^^ this is what the error is pointing to

module.exports = functions.https.onCall(async (data, context) => {
// ... doin' some stripe magic
})
我在 shell 命令行环境中使用 npm:
firebase functions:config:set app.env="production" && firebase deploy -P production --only functions
firebase use 的输出:
% firebase use                                                      
Active Project: default (<stagingProjectName>)

Project aliases for <projectFolderPath>:

* default (<stagingProjectName>)
production (<productionProjectName>)

Run firebase use --add to define a new project alias.
firebase functions:config:get 的输出(在其他变量中):
{
"app": {
"env": "production"
}
}

最佳答案

我通过首先切换到生产项目,设置变量,然后从那里进行部署来解决这个问题。

firebase use production
firebase functions:config:set someservice.key="keyvalue" ...
firebase deploy --only functions
即使我确实使用了 -P之前我的部署命令中的标志( firebase -P production - 见问题),显然没有设置适当的配置值。

关于javascript - Firebase 函数配置不会部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65761138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com