Как отправить уведомление в зависимости от роли?

Как отправить уведомление в зависимости от роли. Например, если у меня есть 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 с ролями. Этот пример из документации по облачным функциям - хорошее место для начала работы с таким настраиваемым отображением.
Другие вопросы по тегам