Я предполагаю, что, написав «Мне нужно проверить, существует ли файл », вы имеете в виду проверку, существует ли узел базы данных (т. Е. Член команды, сохраненный в название команды). Я позволил себе соответственно изменить название и содержание вашего вопроса.
Обратите внимание, что если вы хотите определить, не существует ли член команды с помощью триггера onUpdate()
, , вы не добьетесь успеха , потому что эта облачная функция будет запущена, только если узел существовал до , так как мы следим за обновлениями (не за созданием).
Так что вы, вероятно, должны использовать onWrite()
триггер. Ниже приведен код для двух типов триггера. Я бы посоветовал вам попробовать выполнить несколько записей и обновлений в вашей базе данных (разумеется, после развертывания этих двух функций) и посмотреть, что напечатано в журнале облачных функций.
exports.watchTeamMemberUpdates = functions.database
.ref('/teams/{teamName}')
.onUpdate((change, context) => {
if (!change.before.exists()) {
console.log('watchTeamMemberUpdates: exists error');
return null;
} else {
console.log('watchTeamMemberUpdates: Team member exists');
return null;
}
});
exports.watchTeamMemberWrites = functions.database
.ref('/teams/{teamName}')
.onWrite((change, context) => {
if (!change.before.exists()) {
console.log('watchTeamMemberWrites: exists error');
return null;
} else {
console.log('watchTeamMemberWrites: Team member exists');
return null;
}
});
PS: обратите внимание, что обработчик, который будет передан методу onUpdate(handler)
, является функцией с двумя аргументами, см. https://firebase.google.com/docs/reference/functions/functions.database.RefBuilder#onUpdate. Однако второй не является обязательным. То же самое с методом onWrite(handler)
.