Я понимаю, что токен FCM обновляется, если происходит одно из следующих действий:
- Приложение удаляет идентификатор экземпляра - Приложение восстанавливается на новом устройстве - Пользователь удаляет / переустанавливает приложение - Пользовательочищает данные приложения.
Следующее может использоваться на стороне приложения для отслеживания обновления токена.
Отслеживать генерацию токена
OnTokenRefreshcallback срабатывает всякий раз, когда новый токенгенерируется, поэтому вызов getToken в его контексте гарантирует, что вы получаете доступ к текущему доступному токену регистрации.Убедитесь, что вы добавили службу в свой манифест, затем вызовите getToken в контексте onTokenRefresh и запишите значение, как показано:
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
// If you want to send messages to this application instance or
// manage this apps subscriptions on the server side, send the
// Instance ID token to your app server.
sendRegistrationToServer(refreshedToken);
}
Мой вопрос: когда приложение завершается,срок действия токена истекает, и сервер FCM не может узнать, что представляет собой новый токен для устройства (если он существует).Поэтому, когда я отправляю уведомление / сообщение с данными на это устройство, серверу не удается отправить его на устройство, так как он не знает, куда его отправить (так как нет действительного токена).Как мне убедиться, что в таких ситуациях я могу оповестить устройство?Я не делаю генерацию токенов клиента.Так что, кажется, время от времени обновлять токен.Как мне увеличить срок действия моего токена?