如何从云功能获取Firebase项目名称或ID

Cod*_*224 12 javascript node.js firebase google-cloud-functions

我正在使用云功能,并希望从我的一个Javascript服务器文件中获取项目名称.我知道该值存储在.firebaserc中,但我不认为该文件在服务器上可用,对吧?我想做这样的事情:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.getProjectName();  // or getProjectID()
Run Code Online (Sandbox Code Playgroud)

要么

functions.getProjectName(); 
Run Code Online (Sandbox Code Playgroud)

Cod*_*224 26

谢谢@Frank.答案是: process.env.GCLOUD_PROJECT.
我不确定变量process来自哪里,但这确实可以获得项目名称.

  • 现在使用 `process.env.GCP_PROJECT` 可能会更好,因为 `GCLOUD_PROJECT` 已在此处标记为已弃用:https://cloud.google.com/functions/docs/env-var#environment_variables_set_automatically (8认同)
  • GCLOUD_PROJECT 和 GCP_PROJECT 在 Node 10 运行时中均不可用。 (5认同)
  • 似乎不适用于 GCF Node 10 运行时。转储 `process.env` 时看不到它 (2认同)
  • `GCLOUD_PROJECT` 似乎现在可以工作,它也在 `node10` 运行时中修复了 https://github.com/firebase/firebase-functions/issues/437 (2认同)

Hug*_*lva 11

Firebase管理员SDK可以为您访问该信息.

const admin = require('firebase-admin');
const projectId = admin.instanceId().app.options.projectId
Run Code Online (Sandbox Code Playgroud)

  • 这可能不存在,具体取决于管理员的初始化方式 (2认同)
  • admin.instanceId() 已弃用 https://firebase.google.com/docs/reference/admin/node/admin.instanceId.InstanceId-1 (2认同)

ban*_*yan 6

这对我有用。(节点10)

const FIREBASE_CONFIG = process.env.FIREBASE_CONFIG && JSON.parse(process.env.FIREBASE_CONFIG);
const projectId = FIREBASE_CONFIG.projectId;
Run Code Online (Sandbox Code Playgroud)