使用异步/等待时终止带错误的Firebase功能的正确方法是什么

时间:2019-06-20 03:38:28

标签: firebase google-cloud-platform google-cloud-functions

我有如下功能

export const detectClient = functions.https.onRequest(async (request, response) => {
   try
   {
      const data = await foo();
      return response.status(200).send(data);
   }
   catch(err) {
      throw new functions.https.HttpsError('internal', 'error', err);
   }
} 

问题是当错误发生时,firebase函数不会终止

如果我使用

 return response.status(500).end('error');

它将正确终止。

所以我不确定什么是正确的方法,如果我需要使用response.status(500)throw new functions.https.HttpsError的用法是什么

1 个答案:

答案 0 :(得分:1)

您将error handling for callable functionsHTTP functions的错误处理混淆了。您要显示的函数是HTTP类型的函数(因为它是用functions.https.onRequest声明的),它没有将错误处理约定用作可调用函数。对于HTTP类型的函数,您应该按照问题所示明确发送响应。