javascript 如何在Firebase函数JS中查看HTTP请求的主体数据?[duplicate]

vwhgwdsa  于 2023-01-04  发布在  Java
关注(0)|答案(2)|浏览(139)
    • 此问题在此处已有答案**:

Why can't I access the body or properties of this POST request sent to a HTTP Firebase Cloud Function?(1个答案)
4小时前关门了。
截至3小时前,社区正在审查是否重新讨论此问题。
"我尝试查看Firebase功能POST请求中的主体数据,但控制台总是在Firebase功能日志中返回"未定义"!
问:如何查看Firebase函数中的主体数据以使用它?
请求:

验证码:

exports.test = functions.https.onRequest(async (req, res) => {
 const id = req.body.id

});

我已经用过了,但是没有用:

req.on('data', (chunk) => {
    // The chunk is a Buffer object containing a chunk of the request body data
    body += chunk;
  }).on('end', () => {
    // The request body data has been fully received, and the `body` variable contains the complete request body
  });

i should to get id from body.id

bkkx9g8r

bkkx9g8r1#

如果请求正文类型为application/json或application/x-www-form-urlencoded,则可以使用req.body,否则使用req.rawBody

t9aqgxwy

t9aqgxwy2#

根据this线程的回答,您应该使用自定义Content-Type并将其设置为“application/json”。在“Body”部分中,将请求负载指定为原始JSON对象。
如果你检查firebase函数日志,你可以看到没有收到来自请求的消息,因此你的消息内容是未定义的。
还有一种可能是Firebase函数中的req.body属性格式不正确,或者函数没有正确解析它,因此您可以尝试JSON.parse(req.body);来解析请求正文。因此更新后的代码如下所示:

exports.test = functions.https.onRequest(async (req, res) => {
  const body = JSON.parse(req.body);
  const id = body.id;
  // ...
});

如果以上建议对您没有帮助,根据此answer,您可以联系firebase support

相关问题