Javascript 如何从firebase云函数发送响应错误消息

Javascript 如何从firebase云函数发送响应错误消息,javascript,node.js,firebase,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Functions,如何从firebase云函数发送响应错误消息 我的云函数代码 exports.registerUser = functions.https.onRequest((req, res) => { return corsTool(req, res, async () => { const { mobile } = req.body; const data = { ...req.body, createAt: admin.firestore.Tim

如何从firebase云函数发送响应错误消息

我的云函数代码

exports.registerUser = functions.https.onRequest((req, res) => {
  return corsTool(req, res, async () => {
    const { mobile } = req.body;
    const data = {
      ...req.body,
      createAt: admin.firestore.Timestamp.now()
    };
    try {
      let queryMobile = db.collection("users").where("mobile", "==", mobile);
      const userMobile = await queryMobile.get();
      if (userMobile._size === 0) {
        await db
          .collection("users")
          .doc()
          .set(data);
        res.status(200).send(`save success`);
      } else {
        throw new Error("Error This mobile number is not available.");
      }
    } catch (error) {
      return res.status(500).send(error);
    }
  });
});

客户端中的我的代码

const registerUser = () => {
      const link = 'https://us-central1-....../registerUser'
       try {
          const regis = await axios.post(link, body)
          console.log('success')
        } catch (e) {
          console.log(e)
          console.log(e.message)
        }
}
if(regis.data === "Phone number already used") {
   alert("Error: Phone number already used")
}else {
   alert("Save success")
}
但console.log()中的ResAlt不显示错误状态消息“error This mobile number not available”

按摩显示这个

Error: Request failed with status code 500
    at createError (createError.js:16)
    at settle (settle.js:17)
    at XMLHttpRequest.handleLoad (xhr.js:61)

我需要显示消息“错误此手机号码不可用。”

谢谢vermutch的帮助


现在我通过这样做来修复

如果电话号码已被使用

res.status(200).send('Phone number already used')
并检查客户端中的文本

const registerUser = () => {
      const link = 'https://us-central1-....../registerUser'
       try {
          const regis = await axios.post(link, body)
          console.log('success')
        } catch (e) {
          console.log(e)
          console.log(e.message)
        }
}
if(regis.data === "Phone number already used") {
   alert("Error: Phone number already used")
}else {
   alert("Save success")
}

这是一个好的选择吗?

您的代码正在生成错误。您的代码应该记录所有错误,以便查看发生了什么。请返回并更改代码以正确记录错误(在catch块中)。例如:
console.error(error)
。您确定此错误是从Firebase函数引发的吗?此错误可能从其他地方抛出。我建议将函数中的状态代码更改为“不同”,并检查错误是否会更改。如果不是,你应该去别的地方看看。