如何在 https 的 firebase 函数中获取托管 url 而不是函数 url
How can I get the hosting url instead of functions url in firebase functions for https
我已经动态生成了 url 我需要为暂存和生产环境创建的文件。我正在混合使用 Firebase 托管和功能。我还使用 Firebase 配置将 urls 路由到我的 Firebase 函数 "app"。当我在 Firebase 函数中使用 req.get('host') 访问我的网站时,当我尝试获取托管 url 时,我得到了函数 url。如何获得主机 url? - 触发 firebase 函数的 url?
据我所知,用户输入的原始 URL 在 Cloud Functions 中收到的请求中不可用。重写发生在不同的服务器上,不会传递任何信息。
如果您检查 req.headers
的内容,您会发现一些感兴趣的属性:
host
:Cloud Functions 的主机,例如"us-central1-YOUR-PROJECT.cloudfunctions.net:
x-forwarded-host
:您的 Firebase Hosting 主机,例如"YOUR-PROJECT.firebaseapp.com"
x-forwarded-proto
:原始请求的协议,例如"https"
x-original-url
:原始请求的URL路径,例如“/测试”
在其中三个(以 "x-" 开头的那些)之间,您可以将它们连接在一起以获得原始的 URL。
我不知道这些 headers 是否有完整的文档和支持。
如果您使用的是可调用函数,您可以从
中找到相关信息
context.rawRequest.headers.origin
我已经动态生成了 url 我需要为暂存和生产环境创建的文件。我正在混合使用 Firebase 托管和功能。我还使用 Firebase 配置将 urls 路由到我的 Firebase 函数 "app"。当我在 Firebase 函数中使用 req.get('host') 访问我的网站时,当我尝试获取托管 url 时,我得到了函数 url。如何获得主机 url? - 触发 firebase 函数的 url?
据我所知,用户输入的原始 URL 在 Cloud Functions 中收到的请求中不可用。重写发生在不同的服务器上,不会传递任何信息。
如果您检查 req.headers
的内容,您会发现一些感兴趣的属性:
host
:Cloud Functions 的主机,例如"us-central1-YOUR-PROJECT.cloudfunctions.net:x-forwarded-host
:您的 Firebase Hosting 主机,例如"YOUR-PROJECT.firebaseapp.com"x-forwarded-proto
:原始请求的协议,例如"https"x-original-url
:原始请求的URL路径,例如“/测试”
在其中三个(以 "x-" 开头的那些)之间,您可以将它们连接在一起以获得原始的 URL。
我不知道这些 headers 是否有完整的文档和支持。
如果您使用的是可调用函数,您可以从
中找到相关信息context.rawRequest.headers.origin