Firebase Cloud Functions发送通知输出异常

时间:2019-03-25 04:44:12

标签: node.js firebase firebase-cloud-messaging google-cloud-functions

我正在创建一个类似的功能来向新用户发送通知。

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 个答案:

答案 0 :(得分:1)

这是预料之中的,您可以在documentation中阅读。

对于Firestore(和所有后台)功能,必须返回仅在该功能中所有异步工作完成后才能解决的Promise。发送通知是异步的,因为sendToDevice返回了Promise。通过兑现承诺,您可以向Cloud Function发出信号,说明其所有工作均已完成,并且可以安全清除。