fcm push-уведомления не принимаются на всех устройствах при отправке в цикле for - PullRequest
0 голосов
/ 30 октября 2018

Я использую 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, который в основном повторяет документы, представленные в таблице, и каждый документ содержит идентификатор пользователя и идентификатор устройства мобильного устройства этого пользователя.

...