Как вы увидите в do c, «если местоположение (к которому вы прикрепляете прослушиватель) не имеет данных, оно будет запущено с пустым DataSnapshot ( val () вернет null ) ".
Таким образом, вам нужно проверить в своем коде, является ли snapshot.val()
null
или нет.
Однако обратите внимание, что использование on()
в облачных функциях не рекомендуется, поскольку облачная функция имеет конечный срок службы.
Следует использовать метод once()
, который «прослушивает ровно одно событие указанного типа, а затем прекращает прослушивание».
exports.groups_list = functions.https.onRequest((req, res) => {
const groups = db.ref('groups');
groups.once('value')
.then(snapshot => {
if (snapshot.val()) {
console.log(snapshot.val());
res.send(snapshot.val()) //For example
} else {
res.status(204).send('No content'));
}
})
.catch(error => res.status(500).send('....'));
});
Возможно, вам будет интересно посмотреть официальную серию видеороликов , в частности первое видео о функциях HTTPS Cloud.