Как отправить уведомление в зависимости от роли?
Как отправить уведомление в зависимости от роли. Например, если у меня есть 5 разных ролей, я выбираю только одну роль, тогда люди, которым эта роль должна получать уведомления, используя FCM, а остальные роли не должны получать за это. Нужно ли нам писать сервис в бэк-энде (используя SPRING,PHP)?
1 ответ
Решение
Самый простой способ сделать это - подписать каждого клиента на тему, основанную на его роли. Например, в приложении для Android:
FirebaseMessaging.getInstance().subscribeToTopic("myRole");
Затем вы можете отправить сообщение всем пользователям в роли с помощью Firebase Admin SDK с помощью:
admin.messaging().sendToTopic("myRole", {
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark"
}
})
Несколько вещей, на которые стоит обратить внимание:
- Для отправки сообщения на устройства необходимо указать ключ сервера FCM. Как следует из названия, этот ключ должен использоваться только на сервере или в другой среде, которой вы управляете. Admin SDK запускается с полными учетными данными, поэтому автоматически имеет доступ к ключу сервера FCM.
- Любой может подписаться на любую тему. Таким образом, в приведенном выше примере злоумышленники могут подписаться на темы ролей, в которые они не входят. Если это относится к вашему приложению, вам не следует использовать темы, а вместо этого поддерживать собственное сопоставление серверных токенов регистрации FCM с ролями. Этот пример из документации по облачным функциям - хорошее место для начала работы с таким настраиваемым отображением.