process.env 中未定义的 Firebase 机密

Firebase secrets not defined in process.env

我正在使用 Cloud Storage 触发器编写 Firebase 函数。像这样

const functions = require('firebase-functions')
const doSomethingWithSecrets = require('./doSomethingWithSecrets')

const doSomethingWhenUploaded = functions.runWith({
  secrets: ["MY_SECRET_1", "MY_SECRET_2", "MY_SECRET_3"]
}).storage.object().onFinalize(o => {
  functions.logger.debug([
    process.env.MY_SECRET_1  // undefined
    process.env.MY_SECRET_2  // undefined
    process.env.MY_SECRET_3  // undefined
  ])

  doSomethingWithSecrets(process.env.MY_SECRET_1, process.env.MY_SECRET_2, process.env.MY_SECRET_3)
  // Error: Invalid secret.
})

所有三个 returns 未定义。我已确保它们已正确设置。它们在使用 firebase functions:secret:accesss MY_SECRET_1 和 Google Cloud Console 时都会出现。

怎么了?

附加信息

我以前只用过一个密文,而且很管用。我不知道发生了什么,我正在使用 nvm 并且在它工作时忘记了我使用的是哪个 Node 版本,所以这可能是一个线索。

process.env returns 所有正常的环境和 none 我的秘密都出现了。

更新您的 firebase-tools,问题将自行解决。我今天一整天都在处理这个问题,发现了一个 git 集线器问题,它在最新版本的 10.9.2 中解决了这个问题。

npm install -g firebase-tools

https://github.com/firebase/firebase-tools/issues/4540 https://github.com/firebase/firebase-tools/issues/4459