Создание идентификатора экземпляра Firebase при первом запуске приложения

Поэтому мне трудно понять, когда создается InstanceID, почему он не работает при первом его открытии.

Когда я запускаю приложение в первый раз, этот код возвращает ноль.

FirebaseInstanceId.getInstance().getToken();

Я даже попробовал цикл времени и просто ждал, пока он что-то вернет, но не повезло.

НО, когда я закрываю приложение и снова открываю его, я получаю InstanceID. Любая подсказка, почему? Я пытаюсь получить его на заставке приложения.

onTokenRefresh не вызывается до перезагрузки. Я могу видеть некоторые обходные пути... но предпочитаю просто снять его с ног.

Спасибо!

2 ответа

Из документации:

При первом запуске приложения FCM SDK создает маркер регистрации для экземпляра клиентского приложения. Если вы хотите настроить таргетинг на отдельные устройства или создать группы устройств, вам нужно получить доступ к этому токену, расширив FirebaseInstanceIdService.

Вам необходимо создать подкласс FirebaseInstanceIdService, добавить этот сервис в манифест и переопределить onTokenRefresh(), чтобы получать уведомления о любых обновлениях токена.

Если FirebaseInstanceId.getInstance().getToken() возвращает ноль, это означает, что токена просто еще нет. Таким образом, вы должны ждать этого вместо этого в вашем сервисе.

Оказывается, это мойка экономит, а не создается. Это был один из тех дней..

Другие вопросы по тегам