firebase 云功能发布请求正文

Posted

技术标签:

【中文标题】firebase 云功能发布请求正文【英文标题】:firebase cloud function post request body 【发布时间】:2019-06-13 12:54:03 【问题描述】:

我正在从这样的角度形式发出 http 请求:

  this.http.post(this.endPoint, formData,  responseType: 'text' ).subscribe(
    res => 
      console.log(res);
    
  )

我有一个简单的云功能:

const functions = require('firebase-functions');
const cors = require('cors')( origin: true );

exports.test = functions.https.onRequest((req, res) => 

    cors(req, res, () => 
        const data = req.body;
        res.send(`Hello from Firebase! $data`);
    );

)

但是 req.body 不起作用,我得到了这个响应:

来自 Firebase 的您好! [对象对象]

你知道为什么会这样吗?

【问题讨论】:

【参考方案1】:

如果您尝试打印 req.body 值,您首先必须将其从 javascript 对象转换为字符串:

res.send(`Hello from Firebase! $JSON.stringify(data)`);

【讨论】:

【参考方案2】:

Frank's answer 可能更接近您要查找的内容。

或者,如果您只想打印特定属性:

您正在使用模板文字将 req.body 注入到您的字符串中。由于 req.body(或本例中的数据)是一个对象,因此您必须从中提取要显示的值,例如 req.body.prop

This example from Firebase quickstart 显示将属性从请求正文中拉出。

【讨论】:

【参考方案3】:

我发现了问题:当我从 Angular 表单发布请求时,我在标题中添加了 'Content-Type': 'multipart/form-data'

【讨论】:

以上是关于firebase 云功能发布请求正文的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 的 Firebase 云函数?

在 FCM(Firebase 云消息传递)中,在通知中包含令牌是不是安全?

使用 Github 包作为 npm 节点模块时的 Firebase 云功能部署问题

如何在 firebase 托管的 webapp 中获取 firebase 函数 URL?

Firebase 云函数对另一个 Firebase 云函数的 http 请求

将Firebase存储与Google云CDN集成