Firebase Cloud Messaging: истечение срока действия токена FCM - PullRequest
0 голосов
/ 25 февраля 2019

Я понимаю, что токен 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 не может узнать, что представляет собой новый токен для устройства (если он существует).Поэтому, когда я отправляю уведомление / сообщение с данными на это устройство, серверу не удается отправить его на устройство, так как он не знает, куда его отправить (так как нет действительного токена).Как мне убедиться, что в таких ситуациях я могу оповестить устройство?Я не делаю генерацию токенов клиента.Так что, кажется, время от времени обновлять токен.Как мне увеличить срок действия моего токена?

1 Ответ

0 голосов
/ 25 февраля 2019

Вам нужно будет проверить наличие ошибок при отправке сообщения и обратить внимание на коды ошибок, так как указан в документации .Вам следует прекратить использование токена, если вы получите ошибку messaging/registration-token-not-registered.

...