Облачные функции Firebase отправляют странные уведомления - PullRequest
0 голосов
/ 25 марта 2019

Я создаю функцию, подобную этой, чтобы отправлять уведомления новому пользователю.

exports.sendCreateSuccessNotification = functions.firestore
  .document("users/{userId}")
  .onCreate((snap, context) => {
    const newVal = snap.data();
    const payload = {
      notification: {
        title: "Create Account Success",
        body: "Hello " + newVal.emailUser
      }
    };
    admin.messaging().sendToDevice(newVal.notiToken, payload);
  });

На выходе есть строка ошибки enter image description here Но мое устройство получило уведомление.

Когда я изменил код ниже, с возвращаемым значением

exports.sendCreateSuccessNotification = functions.firestore
  .document("users/{userId}")
  .onCreate((snap, context) => {
    const newVal = snap.data();
    const payload = {
      notification: {
        title: "Create Account Success",
        body: "Hello " + newVal.emailUser
      }
    };
    return admin.messaging().sendToDevice(newVal.notiToken, payload);
  });

На выходе нет ошибок, но мое устройство не получает никаких уведомлений.enter image description here Может кто-нибудь объяснить мне, пожалуйста?Спасибо !!

1 Ответ

1 голос
/ 25 марта 2019

Это ожидается, и вы можете прочитать об этом в документации .

Для функций Firestore (и всех фоновых) вы должны вернуть обещание, которое разрешается только после всех асинхронныхработа завершена в функции.Отправка уведомления происходит асинхронно, поскольку sendToDevice возвращает обещание.Возвращая это обещание, вы доносите в облачную функцию сигнал о том, что вся ее работа выполнена и ее можно безопасно очистить.

...