在 Firebase Cloud Function 中使用 Secret Manager 的正确方法是什么?

What is the Correct Way to Use Secret Manager in Firebase Cloud Function?

我开始使用 SECRET_NAME 添加 Secret Manager,其中包含使用 Node.js 的 Cloud Function 中的特定密码。我两种方法都试过了。首先,使用控制台添加 Secret Manager,然后通过 Firebase CLI 直接添加 Secret Manager。不幸的是,这两种方式都在 Secret 的 Cloud Function 变量中给出了一个空的 Secret 值,如下图所示。

我使用参数 runWith({secret: ["SECRET_NAME"]}) 如下代码所示。

exports.Auth = functions.runWith(secret).https.onCall(async (data, context) => {
  const response = 129132;
  return Promise.resolve(response);
});

const secret = {
  timeoutSeconds: 120,
  memory: "1GB",
  secret: ["SECRET_NAME"],
  minInstances: 0,
};

我遵循了 Firebase Cloud Function (https://firebase.google.com/docs/functions/config-env) 中编写的文档。

我花了将近一个星期的时间来找出我哪里错了,但一无所获。我还在 Google Cloud Console 中的当前 SECRET_NAME 添加了一个角色“Secret Manager Secret Accessor”,但它没有给出任何结果。如本计算器中所写 post

我的问题是我应该在 Google Cloud Platform 的 Cloud Function Console 中手动添加 SECRET_NAME 吗?如果是这样,那么上面写的文档有什么用呢? Firebase 是不是想把我们引向无路可走?

对不起大家。
显然,我写的代码是错误的:

const secret = {
  timeoutSeconds: 120,
  memory: "1GB",
  secrets: ["SECRET_NAME"], //Must use secrets not secret
  minInstances: 0,
};

谢谢你,@MichaelBleigh。
问题现已解决。