我有如下功能
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
的用法是什么
答案 0 :(得分:1)
您将error handling for callable functions与HTTP functions的错误处理混淆了。您要显示的函数是HTTP类型的函数(因为它是用functions.https.onRequest
声明的),它没有将错误处理约定用作可调用函数。对于HTTP类型的函数,您应该按照问题所示明确发送响应。