首页 > 解决方案 > 如何获取要在 Firebase 云功能中使用的 Firebase 项目区域值

问题描述

我在两个不同的位置创建了 2 个项目。说 us-central1 和 asia-northeast1。现在对于这两个不同的项目,我想在各自的区域部署云功能。

const function_location = 'asia-northeast1';// I want a region of the project selected through npm 
exports.AddWebLogs = functions.region(function_location).firestore.document(............

如何在环境变量或 process.env 中的某个位置获取项目区域值,以便我可以使用它在云函数中设置该区域。

REACT_APP_API_KEY             = xyz
REACT_APP_AUTH_DOMAIN         = xyz
REACT_APP_DATABASE_URL        = xyz
REACT_APP_PROJECT_ID          = xyz
REACT_APP_STORAGE_BUCKET      = xyz
REACT_APP_MESSAGING_SENDER_ID = xyz

标签: google-cloud-firestoregoogle-cloud-functions

解决方案


如果我正确理解您的问题,您有两个项目:Project A位于us-central1Project B位于asia-northeast1. 您想知道它们各自的区域并将其存储在环境变量中,以便稍后在部署 Cloud Function 时使用。

查看项目中的默认区域和区域设置,可以使用云命令行工具:

gcloud compute project-info describe --project [PROJECT_ID]

使用 gcloud 命令行工具设置变量,请在部署时使用 --set-env-vars 标志:

gcloud functions deploy FUNCTION_NAME --set-env-vars myRegion=region

您可以在运行时访问您的环境变量。在运行时,可以通过 Node.js 中的 process.env 属性访问环境变量:

gcloud functions deploy envVar --runtime nodejs10 --set-env-vars myRegion=region --trigger-http

然后,您可以使用:

exports.envVar = (req, res) => {
  // Sends 'region' as response
  res.send(process.env.myRegion);
};

希望这可以帮助。


推荐阅读