【发布时间】:2020-09-26 10:04:43
【问题描述】:
我编写了一个 firebase 云函数,一切正常,但是当尝试从客户端读取响应时,我从云函数返回的数据不包含在响应中。
这是我的云功能:
exports.employeeExists = functions.https.onRequest((request, response) => {
return response.status(500).json({
data: {
type: constants.REQUEST_ERROR,
error: 'ERROR MESSAGE'
}
});
});
这是我的客户端请求:
fetch('cloud function url', options)
.then((response) => {
console.log(JSON.stringify(response));
});
我在客户端日志上得到的输出是带有我设置的正确状态代码 (500) 的响应,但是我随响应发送的数据不存在。
我有什么遗漏吗?
【问题讨论】:
-
fetch() 返回一个包含 Response 对象的 Promise。 Promise 可以被实现或被拒绝。 500是rejection Rejection,跳转到catch()。你能看到你在 catch() 中得到了什么吗?
-
我也尝试过使用 2xx 状态码,但我的响应数据仍然不正确。不过我找到了解决办法。我没有使用 fetch() 我使用 axios.post() 并且我通过 axios 收到的响应数据包含我期望的所有数据。
标签: javascript react-native google-cloud-functions