Облачные функции Firebase/каждый метод then() должен возвращать значение или выдавать обещание/всегда возвращать

Я следовал официальному учебнику firebase по обещаниям (https://thewikihow.com/video_7IkUgCLr5oA), но в моем случае я не могу заставить его работать.

const promise = userRef.push({text:text});

const promise2 = promise.then((snapshot) => {
    res.status(200).json({message: 'ok!'});
});

promise2.catch(error => {
    res.status(500).json({message: 'error'});
});

Что я делаю неправильно? Каждый then() должен иметь свой ответ на случай, если что-то пойдет не так, но именно поэтому я пишу обработчик promise2.

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
0
0
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто добавьте return перед отправкой ответа.

const promise = userRef.push({text:text});

const promise2 = promise.then((snapshot) => {
    return res.status(200).json({message: 'ok!'});
});

promise2.catch(error => {
    return res.status(500).json({message: 'error'});
});

Также вы можете связать промисы следующим образом:

return userRef.push({text:text})
.then((snapshot) => {
    return res.status(200).json({message: 'ok!'});

}).catch(error => {
    return res.status(500).json({message: 'error'});
});

Другие вопросы по теме