Насколько я понимаю, Firebase Cloud Messaging на данный момент я захочу сохранить все токены FCM, которые пользователь может иметь на разных устройствах, на моем бэкэнде и отправить уведомление всем этим токенам сразу, когда яхочу уведомить этого пользователя о чем-то.
Несколько токенов
До этого момента я предполагал, что каждое устройство имеет только один активный токен, однако, читая этот раздел документации :
Чтобы включить эту функцию, убедитесь, что у вас есть идентификатор отправителя каждого отправителя. При запросе регистрации клиентское приложение извлекает токен несколько раз, каждый раз с другим идентификатором отправителя в поле аудитории, используя метод поиска токена для данной платформы
Означает ли это, что мне может понадобитьсяtarget несколько активных токенов на устройство ?
Удаление
А теперь перейдем к действительно важному вопросу. Простым решением вышеуказанной проблемы было бы просто сохранить каждый токен, который я когда-либо получал , в бэкэнде и таким образом гарантировать, что мой пользователь всегда будет получать сообщение.
Однако, что мне делатьесли пользователь выходит из моего приложения с помощью Firebase Authentication, то есть в том же приложении на том же устройстве используется другая учетная запись?
Я предполагаю, что токены, которые я отправил в свой бэкэнд для этого устройства, все еще будут активны - так что теперьэтот пользователь будет получать уведомления от другой учетной записи, поскольку эта учетная запись была ранее зарегистрирована на устройстве.
У меня есть доступ к текущему токену FCM , и я мог бы удалить его из своей серверной части перед выходом из старойпользователь, но с учетом раздела «Несколько токенов»: как мне убедиться, что я могу удалить все токены FCM старого пользователя из моего бэкэнда ?
Уникальность
Кроме того, если предположить, что старые токены просто dead для устройства (больше не будут вызывать уведомления), когдасоздаются новые, могу ли я быть уверен, что этот токен никогда не будет назначен другому устройству в будущем?
TL; DR
Как я могу убедиться, что у меня правильный FCMтокены для моего пользователя, хранящиеся в моем бэкэнде, и что более важно: как я могу гарантировать, что токены других пользователей не будут сохранены для какого-либо пользователя в моем бэкэнде ?
Я прочитал:
Однако я до сих пор не знаю, как обращаться с несколькими токенами .