Создание идентификатора экземпляра Firebase при первом запуске приложения
Поэтому мне трудно понять, когда создается InstanceID, почему он не работает при первом его открытии.
Когда я запускаю приложение в первый раз, этот код возвращает ноль.
FirebaseInstanceId.getInstance().getToken();
Я даже попробовал цикл времени и просто ждал, пока он что-то вернет, но не повезло.
НО, когда я закрываю приложение и снова открываю его, я получаю InstanceID. Любая подсказка, почему? Я пытаюсь получить его на заставке приложения.
onTokenRefresh не вызывается до перезагрузки. Я могу видеть некоторые обходные пути... но предпочитаю просто снять его с ног.
Спасибо!
2 ответа
Из документации:
При первом запуске приложения FCM SDK создает маркер регистрации для экземпляра клиентского приложения. Если вы хотите настроить таргетинг на отдельные устройства или создать группы устройств, вам нужно получить доступ к этому токену, расширив FirebaseInstanceIdService.
Вам необходимо создать подкласс FirebaseInstanceIdService, добавить этот сервис в манифест и переопределить onTokenRefresh(), чтобы получать уведомления о любых обновлениях токена.
Если FirebaseInstanceId.getInstance().getToken()
возвращает ноль, это означает, что токена просто еще нет. Таким образом, вы должны ждать этого вместо этого в вашем сервисе.
Оказывается, это мойка экономит, а не создается. Это был один из тех дней..