自定义域的Firebase HTTP到HTTPS NGINX重定向删除GET的POST方法

自定义域的Firebase HTTP到HTTPS NGINX重定向删除GET的POST方法,firebase,express,nginx,google-cloud-functions,firebase-hosting,Firebase,Express,Nginx,Google Cloud Functions,Firebase Hosting,Firebase无法将任何HTTP POST请求重定向到HTTPS POST。例: POST/HTTP/1.1 主机:api.mydomain.com 被Firebase NGINX重定向到 GET/HTTP/1.1 主机:api.mydomain.com 如果您明确使用https,那么NGINX可以正常工作:POST->POST 因此,当请求到达Firebase主机并将请求重定向到可由https端点访问的Firebase函数时,该方法有可能崩溃为GET from a POST方法 仔细查看Fi

Firebase无法将任何HTTP POST请求重定向到HTTPS POST。例:

POST/HTTP/1.1 主机:api.mydomain.com

被Firebase NGINX重定向到

GET/HTTP/1.1 主机:api.mydomain.com

如果您明确使用https,那么NGINX可以正常工作:POST->POST

因此,当请求到达Firebase主机并将请求重定向到可由https端点访问的Firebase函数时,该方法有可能崩溃为GET from a POST方法

仔细查看Firebase Cloud函数中的头文件,该协议始终表示为http,而不是https


我假设这是一个我无法修改的内部问题,但是,这是我正在做的事情的问题,而且这肯定是一个问题,因为我无法修改处理http(s)请求的NGINX。

如果您使用301或302状态代码重定向,则帖子将降级以获取

您需要使用307状态在重定向中维护POST。有关详细信息,请参阅

在Nginx上,需要使用
return
语句。例如:

return 307 https://$host$request_uri;

这就是问题所在:我使用firebase捕获api发出的post请求。对于这个特定的用例,它是有效的,因为我可以将所有请求作为post或get处理。但在内部,如果我将firebase用于另一个目的,即我无法控制谁在从我的端点请求时做什么,那么我无法改变firebase在内部使用nginx的方式。我无法修改firebase内部的工作方式。我想知道这是否是故意的,或者这是否是Firebase的一个bug,您必须联系Firebase支持部门以获取该信息。