Firebase Cloud Messaging Android - PullRequest
       10

Firebase Cloud Messaging Android

0 голосов
/ 07 сентября 2018

Я знаю, что было задано много вопросов по этому поводу, и я некоторое время изучал, прежде чем сам задавать это, потому что каждый ответ, который я вижу (и даже их пример), основан на успешной отправке токена на сервер.

FirebaseInstanceIdService устарел в пользу FirebaseMessagingService, для использования метода onNewToken(). Я кеширую этот токен в своем приложении и отправляю его на внутренний сервер, планируя Job, используя FirebaseJobDispatcher. Все хорошо, но я хочу обработать случай, когда мой кэш недействителен, желая снова получить токен и отправить его на сервер бэкэнда. Поэтому я подумал, что это должно быть сделано в моем расширенном классе Application, используя FirebaseInstanceId.getInstance().getInstanceId() с successListener и проверяя, отличается ли значение моего кэшированного токена от значения instanceIdResult.getToken().

Проблема в том, что getInstanceId () также генерирует токен, если он не существует, в результате чего дважды вызывается отправка токена на внутренний сервер (один раз в successListener, упомянутом выше, и другой в onNewToken() в моем FirebaseMessagingService расширенный класс), чего я хочу избежать.

Должен ли я сам справиться с этим, создав задачу по отправке токена и проверив, не запущен ли он, а затем запустится сам или что-то более чистое, что мне не хватает при использовании FCM Android SDK?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...