Firebase подписывается на топи c динамически - PullRequest
0 голосов
/ 14 апреля 2020

У меня в приложении есть сценарий, при котором происходит определенное событие, и у меня есть список идентификаторов пользователей / токенов, и мне нужно отправить уведомление всем этим n устройствам. Чтобы вызвать fcm с n токенами, n раз не будет возможным, поэтому я должен динамически создать топи c и подписать идентификатор / токен устройства этих n пользователей на эту топи c.

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

Ответы [ 2 ]

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

Я нашел способ, написав этот ответ на случай, если он поможет другим в будущем

Да. Можно создать топи c динамически, если у нас есть список valid registration token s

Это URL-адрес конечной точки, если вы хотите сгенерировать топи c, если у вас есть список пользователей-

https://iid.googleapis.com/iid/v1:batchAdd

Заголовок авторизации содержит -

Content-Type- application/json
Authorization- key=<your-server-key>

Параметры тела выглядят как -

{
"to": "/topics/<topic name>",
    "registration_tokens": [
        "token1",
        "token2"
    ]
}

А теперь топи c создано,

Вы можете легко отправить сообщение на этот топи c с помощью - https://fcm.googleapis.com/fcm/send

Токен авторизации такой же как предыдущий

И корпус как-

{
"priority": "HIGH",
    "notification": {
        "title": "New Text Message",
        "image": "https://firebase.google.com/images/social.png",
        "body": "Hello how are you?"
    },
    "to": "/topics/<topic name>"
}
0 голосов
/ 15 апреля 2020

Чтобы запустить fcm с n токенами, n раз не будет возможно

Использование тем по сути не меняет работу доставки сообщений FCM. Когда вы используете topi c, серверы Google сохраняют сопоставление этих topi c с подписанными токенами. Поэтому, когда вы вызываете API для отправки сообщения в topi c, серверы Google разветвляются от этих topi c до токенов, а затем доставляют сообщение с той же инфраструктурой, что и при вызове API с помощью сами токены.

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

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