我正在创建一个类似的功能来向新用户发送通知。
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);
});
当我将代码更改为下面的代码时会有回报
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);
});
答案 0 :(得分:1)
这是预料之中的,您可以在documentation中阅读。
对于Firestore(和所有后台)功能,必须返回仅在该功能中所有异步工作完成后才能解决的Promise。发送通知是异步的,因为sendToDevice返回了Promise。通过兑现承诺,您可以向Cloud Function发出信号,说明其所有工作均已完成,并且可以安全清除。