我正在使用fcm向移动设备(包括ios和android)发送推送通知。我在Firestore中有一张桌子,上面有注册用户的设备ID。我遍历该表,并将推送通知发送到移动设备。我正在使用以下代码进行推送通知。
const sendNotification = (deviceId, userId) => {
return new Promise((resolve, reject) => {
let message = {
notification: {
title: 'TITLE',
body: `notification is sent to ${userId}`
}
};
let options = {
contentAvailable: true,
priority: "high",
timeToLive: 60 * 60 * 24
};
firebase.messaging().sendToDevice(deviceId, message, options)
.then(function (response) {
resolve({
message: `Successfully sent message`
})
console.log(`notification sent to ${userId}`);
})
.catch(function (error) {
reject({
message: "There is an issue sending push notification"
})
console.log('Error sending message:', error);
});
});
};
问题是通知已成功发送到所有设备,但并非所有设备都收到通知。有时它是在设备A上交付的,当我重新运行代码时,推送通知没有交付到该设备。
有时在所有设备上都会收到推送通知,有时没有设备会收到任何推送通知。
我在for循环中调用sendNotification
,该循环基本上是对表中存在的文档进行迭代,并且每个文档都包含该用户的用户ID和该用户的移动设备的设备ID。