Я использую fcm для отправки push-уведомлений на мобильные устройства, включая ios и android. У меня есть таблица в firestore, в которой есть идентификаторы устройств зарегистрированных пользователей. Я перебираю эту таблицу и отправляю push-уведомления на мобильные устройства. Я использую следующий код для push-уведомлений.
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, и когда я повторно запускаю код, push-уведомление не доставляется на это устройство.
Иногда push-уведомления принимаются на всех устройствах, а иногда ни одно из устройств не получает никаких push-уведомлений.
Я звоню sendNotification
в цикле for, который в основном повторяет документы, представленные в таблице, и каждый документ содержит идентификатор пользователя и идентификатор устройства мобильного устройства этого пользователя.