【发布时间】:2020-07-24 22:24:09
【问题描述】:
我有一个功能可以遍历我的订单类别中的每个订单,让用户的订单早于 1 天,并向他们发送提醒通知,但由于某种原因,当我执行此调用时,有时会发送通知,有时会发送通知不是,为什么会这样?
exports.sendReminder = functions.https.onRequest(async (req, res) => {
const db = admin.firestore();
const messaging = admin.messaging();
const tsToMillis = admin.firestore.Timestamp.now().toMillis()
const compareDate = new Date(tsToMillis - (24 * 60 * 60 * 1000))
const snap = await db.collection('orders').where("timestamp","<",new Date(compareDate)).where("status", "in" ,[1,2,4,5,6]).get()
let allPromises = [];
if(snap.size > 0){
snap.forEach((doc) => {
const userId = doc.data().uid;
allPromises.push(db.collection('user').doc(userId).get().then(userSnapshot => {
const userData = userSnapshot.data();
if (userData) {
const deviceToken = userData.deviceToken;
const payload = {
notification: {
title: "¿ Did you receive your order ?",
body: "We would love to know if you have received your order",
clickAction: "AppMainActivity"
},
data: {
ORDER_REMINDER: "ORDER_REMINDER"
}
}
res.status(200).send('Done!')
return messaging.sendToDevice(deviceToken,payload)
} else {
return null;
}
}));
});
}
return Promise.all(allPromises);
});
为什么这个功能不能正确发送通知?我之前遇到过 Firebase 云功能的这个问题,它似乎没有正确处理通知的传播,我做错了什么?
【问题讨论】:
标签: javascript firebase google-cloud-firestore google-cloud-functions