如何在https的firebase函数中获取托管URL而不是函数url

时间:2018-07-05 15:53:08

标签: firebase google-cloud-functions firebase-hosting

我有动态生成的URL,需要为登台和生产环境创建这些URL。我正在混合Firebase托管和功能。我还使用Firebase配置将URL路由到我的Firebase函数“ app”。当我尝试在Firebase函数中使用req.get('host')访问站点时尝试获取托管URL时,我会获取函数url。如何获得托管网址? -触发firebase函数的网址?

3 个答案:

答案 0 :(得分:6)

如果您检查req.headers的内容,则会发现一些感兴趣的属性:

  • host:Cloud Functions的主机,例如“ us-central1-YOUR-PROJECT.cloudfunctions.net:
  • x-forwarded-host:您的Firebase托管主机,例如“ YOUR-PROJECT.firebaseapp.com”
  • x-forwarded-proto:原始请求的协议,例如“ https”
  • x-original-url:原始请求的网址路径,例如“ /测试”

其中三个(以“ x-”开头的)之间,您可以将它们连接在一起以获得原始URL。

我不知道这些标头是否已完全记录和受支持。

答案 1 :(得分:0)

据我所知,用户键入的原始URL在您从Cloud Functions中获得的请求中不可用。重写发生在不同的服务器上,并且没有传递任何信息。

答案 2 :(得分:0)

如果您使用的是可调用函数,则可以从以下位置找到信息

context.rawRequest.headers.origin