Не получаю сообщение с облачной базой на ios - PullRequest
0 голосов
/ 01 декабря 2019

Я работал над функцией запроса на добавление в друзья для моего собственного приложения, и я хотел уведомить пользователя (отправителя) с помощью облачного сообщения, если запрос был принят. Он успешно работает на Android, и я получаю уведомление на устройстве, но iOS не работает.

Это моя облачная функция для приема запросов на добавление в друзья:

//======================ACCEPT REQUEST==========================//
exports.onAcceptRequest = functions.https.onCall((data, context) => {
  const targetId = data.targetId;
  const senderId = data.senderId;
  return admin
    .firestore()
    .collection('Friendships')
    .doc()
    .set({
      targetId: targetId,
      senderId: senderId,
      timeStamp: new Date(),
    })
    .then(() => {
      console.log('Befriended');
      notifySenderId(senderId);
      return null;
      //NOTIFICATION SENT TO uid2(senderId)
    })
    .catch(err => console.log('errrrrr', err));
});
function notifySenderId(senderId) {
  return admin
    .firestore()
    .collection('Users')
    .doc(`${senderId}`)
    .get()
    .then(doc => {
      var tokens = Object.keys(doc.data().fcmTokens);
      console.log('TOKENS: ', tokens);
      return tokens;
    })
    .then(tokens => {
      console.log('tokens: ', tokens);
      const payload = {
        notification: {
          title: 'Friend Request Accepted',
          body: 'Hi add me to a group',
          sound: 'default',
        },
      };
      return admin.messaging().sendToDevice(tokens, payload);
    })
    .then(() => console.log('notified senderId of Acceptance'))
    .catch(err => console.log('err notifying senderId', err));
}

На iOS в облакеФункция успешно выполняется в бэкэнде (как показано в журналах функций ниже), но не отображает уведомления на устройстве, хотя я разрешил уведомления в настройках.

Я не использую никакую библиотеку для отображения уведомлений,Я ожидаю, что FCM отобразит уведомление автоматически (работает на Android).

Журнал облачных функций: enter image description here

РЕДАКТИРОВАТЬ: Решено! Я узнал, что fcmTokens может меняться со временем, обновление токена в базе данных решило мою проблему.

Но у меня есть дополнительный вопрос: как мы отслеживаем обновление токенов на устройстве ??

1 Ответ

1 голос
/ 01 декабря 2019

Решено! Я узнал, что fcmTokens может меняться со временем, обновление токена в базе данных решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...