Firebase 云函数 process.env.FIREBASE_CONFIG.projectId 未定义

Firebase cloud function process.env.FIREBASE_CONFIG.projectId is undefined

来自 Firebase 官方云函数文档:

https://firebase.google.com/docs/functions/config-env#automatically_populated_environment_variables

我需要访问 projectId,所以我正在尝试:

type FirebaseConfigEnv = {
  databaseURL: string,
  storageBucket: string,
  projectId: string
}

export const helloWorld = functions.https.onRequest((request, response) => {
  const FIREBASE_CONFIG = process.env.FIREBASE_CONFIG as unknown as  FirebaseConfigEnv;
  response.send(`FIREBASE_CONFIG.projectId: ${FIREBASE_CONFIG.projectId}`);
});

我在浏览器上得到以下结果:

为什么 process.env.FIREBASE_CONFIG 对象没有在我的运行时环境中正确填充?

process.env.FIREBASE_CONFIG 的值是一个 JSON 字符串。由于字符串没有名为 projectId 的 属性,因此您会得到 undefined.

要像您期望的那样使用它,您必须首先按照 documentation you linked:

底部所示的方式解析它
const FIREBASE_CONFIG = JSON.parse(process.env.FIREBASE_CONFIG);
const projectId = FIREBASE_CONFIG.projectId;