我是firebase的新手,我知道在https.onCall函数中不能访问头,唯一的选择是只使用https.onRequest。我可以知道是否有任何变通方法来访问https.onCall方法中的头。
nr9pn0ug1#
没有解决方法-API不允许。根据specification,可调用函数完全控制客户端和服务器上的头,如果您想使用可调用函数,则必须接受这一点。如果你需要访问一个头文件,你不应该使用callables,而应该使用普通的HTTP函数,在那里你有完全的控制权。根据您的用例,如果您必须使用可调用函数,则可以使用请求的有效负载将数据传输到函数。
jm81lzqq2#
目前,rawRequest可在CallableContext上使用。因此,您可以使用如下行设置响应头:
rawRequest
CallableContext
context.rawRequest.res?.header('X-My-Header', 'CustomValue')
字符串
0x6upsns3#
现在,您可以通过如下方式处理rawRequest.rawHeaders来读取Header
const headers = {} if ( !request || !request.rawRequest || !request.rawRequest.rawHeaders || !request.rawRequest.rawHeaders.length ) return { success: false, message: "Invalid request" } const rawHeaders = request.rawRequest.rawHeaders for (let i = 0; i < rawHeaders.length; i += 2) headers[rawHeaders[i]] = rawHeaders[i + 1] console.log(headers)
3条答案
按热度按时间nr9pn0ug1#
没有解决方法-API不允许。根据specification,可调用函数完全控制客户端和服务器上的头,如果您想使用可调用函数,则必须接受这一点。
如果你需要访问一个头文件,你不应该使用callables,而应该使用普通的HTTP函数,在那里你有完全的控制权。
根据您的用例,如果您必须使用可调用函数,则可以使用请求的有效负载将数据传输到函数。
jm81lzqq2#
目前,
rawRequest
可在CallableContext
上使用。因此,您可以使用如下行设置响应头:
字符串
0x6upsns3#
现在,您可以通过如下方式处理rawRequest.rawHeaders来读取Header
字符串