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 云功能发布请求正文的主要内容,如果未能解决你的问题,请参考以下文章
在 FCM(Firebase 云消息传递)中,在通知中包含令牌是不是安全?
使用 Github 包作为 npm 节点模块时的 Firebase 云功能部署问题
如何在 firebase 托管的 webapp 中获取 firebase 函数 URL?