Мой вопрос:
Когда я подписываю пользователя на чат, скажем, что у чата есть идентификатор «xDs50Yss70», пользователь остается подписанным, пока пользовательский идентификатор Firebase не изменился.
Однако, когда пользовательский идентификатор Firebase изменяется, например, когда пользователь удалил приложение и снова загрузил его, пользователь больше не подписывается на чат и другие подписки, которые могут у него быть.
Я использую эту функцию, чтобы подписать пользователя на чат при его создании
function subscribeUserToATopic(registrationTokens, chatId) {
return admin.messaging().subscribeToTopic(registrationTokens, chatId)
}
Как мы видим, мы используем токен регистрации для подписки пользователя на chatId
, я использую токен регистрации, полученный из этого кода (на стороне клиента):
@Override
public void onNewToken(String newToken) {
super.onNewToken(newToken);
// Send the new token to Firestore
sendTokenToDatabase(newToken);
}
Я отправляю токен в базу данных Firestore, используя sendTokenToDatabase()
, однако, когда пользователь удаляет приложение и переустанавливает его, токен меняется ... И я больше не могу отправлять push-уведомления с использованием этого кода, так как токен пользователя изменился :
admin.messaging().sendToTopic(chatId, payload, options).then(() => {
console.log(`Push notification sent to the user(s) subscribed to the ${chatId}`)
}).