Как получить все пользовательские токены и отправить FCM всем - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь отправить FCM нескольким пользователям одновременно. Кажется, я не могу найти четкого ответа, кроме использования topi c, но у меня есть несколько условий, которые делают это довольно сложным с моей стороны. Можно ли вообще извлечь все токены из определенного документа (аналогично настройке его как topi c, но на основе моей логики c) и передать этот массив в функцию Cloud?

My текущий код выглядит следующим образом, и он работает для одного пользователя (я публикую только часть, где извлекается токен):

 return admin.firestore().doc('Seller_tokens/tokens/' + brand + '/wc').get().then(usertokensdoc =>{

             const sellertokenID = usertokensdoc.get("dXufWMvOTLXUOyj8XNv9NFmsQ4x1");

        const payload = {

            data:{
                title:'FCM - Test',
                content: 'FCM - This is a test message,

            },
            token: sellertokenID
        };

для строки:

const sellertokenID = usertokensdoc.get("dXufWMvOTLXUOyj8XNv9NFmsQ4x1");

Я делаю не нужно указывать единственный идентификатор пользователя, где «идентификатор пользователя» - это поле в документе. И поэтому я хотел бы передать массив, если это возможно.

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Как вы упомянули и как поясняется в официальной документации Отправка сообщений на несколько устройств , существует только два способа отправки сообщений на несколько токенов:

Firebase Cloud Messaging обеспечивает эти два способа нацелить сообщение на несколько устройств:

  • Topi c обмен сообщениями, который позволяет отправлять сообщения нескольким устройствам, которые выбрали определенный topi c .

  • Обмен сообщениями группы устройств, который позволяет отправлять сообщения на несколько устройств, принадлежащих к определенной вами группе.

В дополнение к этому, как уже упоминалось в этом другом вопросе здесь , отсутствует API для получения всех токенов одновременно, поэтому вам необходимо получить индивидуально для использования.

Подводя итог, можно сказать, что не существует автоматического c способа получения токенов , но, как только вы их получите, я считаю, что использование Device Messaging было бы лучше для вас, так как ты может определить определенные c группы для получения FCM по токенам, которые вы получили.

Дайте мне знать, помогла ли вам информация!

0 голосов
/ 06 апреля 2020

вы можете получить токены документов на основе ваших условий в облачной функции. Через них oop создайте массив токенов и передайте их в систему обмена сообщениями Firebase, как показано ниже: admin.messaging.sendToDevice (токены, полезная нагрузка). Ниже приведен очень хороший пример.

FCM - Пример облачных функций

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