Облачная функция должна всегда возвращать Обещание (или, если вы не можете, хотя бы значение).
Ваша функция должна работать как есть, но с задержкой и ошибкой в журнале, например «Функция вернула неопределенное, ожидаемое обещание или значение». Может случиться, что экземпляр Cloud Functions, выполняющий вашу функцию, завершает работу до того, как ваша функция успешно запишет сообщение в журнал.
Если вы измените свой код следующим образом, вы получите (квази) мгновенный ответ:
exports.fanOutLink = functions.database.ref('/userLink/BLAH584H5BLAH30BLA/link').onWrite((change, context) => {
console.log('value is:'+change.before.val());
return true;
});
Я бы посоветовал вам взглянуть на эти 2 видео от команды Firebase: https://www.youtube.com/watch?v=7IkUgCLr5oA&t=511s и https://www.youtube.com/watch?v=652XeeKNHSk&t=37s
После нашего «обсуждения» в комментариях ниже, похоже, что вы используете новый синтаксис Cloud Functions, но со старой версией библиотеки. Посмотрите на этот документ: https://firebase.google.com/docs/functions/beta-v1-diff, и сделайте, как указано, перед повторным развертыванием:
Запустите следующее в папке функций:
npm install firebase-functions@latest --save
npm installfirebase-admin@5.11.0 --save