检索Firebase函数的当前唯一URL

Dew*_*wey 1 node.js firebase google-oauth google-cloud-functions

我正在编写一个Firebase云函数来对用户进行身份验证,并获取refresh_token和access_token供以后使用。以下是初始化Google OAuth2客户端的代码段:

const { google } = require("googleapis");

module.exports = () => new google.auth.OAuth2(
  GOOGLE_CLIENT_ID,
  GOOGLE_CLIENT_SECRET,
  `${BACKEND_URL}/authCallback`,
);
Run Code Online (Sandbox Code Playgroud)

目前,我必须先将该函数部署到firebase,然后才能获取的值BACKEND_URL。是否可以在函数内检索当前的Firebase唯一URL?

Dou*_*son 5

HTTPS函数网址如下所示:

https://us-central1-YOUR-PROJECT.cloudfunctions.net/test
Run Code Online (Sandbox Code Playgroud)

其中“ us-central1”是部署区域,“ YOUR-PROJECT”是Firebase / Cloud项目的名称。“ test”是函数的名称。其他一切保持不变。

process.env.FUNCTION_REGION 是当前功能已部署的区域。

process.env.GCP_PROJECT 是已部署当前功能的项目的名称。

因此,如果您假设当前正在运行的功能与目标HTTPS功能共享相同的项目和部署区域,则可以使用这两个流程环境变量的内容来构建URL。

  • 嘿,道格!自从你回答问题以来,情况已经发生了变化。新的 Node.js v10 运行时不再具有 FUNCTION_REGION:https://cloud.google.com/functions/docs/env-var#nodejs_10_and_subsequent_runtimes 解决该问题的更新方法是什么?谢谢你! (4认同)