Как правильно завершить функцию firebase с ошибкой при использовании async / await - PullRequest
0 голосов
/ 20 июня 2019

У меня есть функция, подобная приведенной ниже

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 Ответ

1 голос
/ 20 июня 2019

Вы путаете обработку ошибок для вызываемых функций с обработкой ошибок для HTTP-функций .Функция, которую вы показываете, является функцией типа HTTP (потому что она объявлена ​​с functions.https.onRequest), которая не использует соглашения об обработке ошибок в качестве вызываемых функций.Для функций типа HTTP вы должны явно отправить ответ, как показано в вашем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...