在firebase的https.onCall函数中访问头有什么解决方法吗

r1wp621o  于 2023-11-21  发布在  其他
关注(0)|答案(3)|浏览(108)

我是firebase的新手,我知道在https.onCall函数中不能访问头,唯一的选择是只使用https.onRequest。我可以知道是否有任何变通方法来访问https.onCall方法中的头。

nr9pn0ug

nr9pn0ug1#

没有解决方法-API不允许。根据specification,可调用函数完全控制客户端和服务器上的头,如果您想使用可调用函数,则必须接受这一点。
如果你需要访问一个头文件,你不应该使用callables,而应该使用普通的HTTP函数,在那里你有完全的控制权。
根据您的用例,如果您必须使用可调用函数,则可以使用请求的有效负载将数据传输到函数。

jm81lzqq

jm81lzqq2#

目前,rawRequest可在CallableContext上使用。
因此,您可以使用如下行设置响应头:

context.rawRequest.res?.header('X-My-Header', 'CustomValue')

字符串

0x6upsns

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)

字符串

相关问题