【问题标题】:How can I send a custom response from a firebase cloud function?如何从 Firebase 云功能发送自定义响应?
【发布时间】: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


【解决方案1】:

经过一番挣扎后,我决定使用 Axios 而不是内置的 fetch() 函数,现在我可以检索到我期望的响应数据了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-20
    • 2021-03-08
    • 2020-08-19
    • 2018-06-01
    • 2019-02-23
    • 2019-07-13
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多