Мое приложение получает push-уведомление от проекта 2 firebase. Я получаю токены для каждого идентификатора отправителя, вызывая «getToken (String authorEntity, String scope)) отдельно.
String token1 = FirebaseInstanceId.getInstance().getToken("authorizedEntity1", "FCM");
String token2 = FirebaseInstanceId.getInstance().getToken("authorizedEntity2", "FCM");
Согласно документации onTokenRefresh
Вызывается, когда система определяет, что токены необходимо обновить. Прикладная программа должна вызывать getToken () и отправлять токены всем серверам приложений. Это будет вызываться не очень часто, это необходимо для ротации ключей и для обработки изменений ID экземпляра в связи с:
Приложение удаляет идентификатор экземпляра
Приложение восстановлено на новом устройстве
Пользователь удаляет / переустанавливает приложение
Пользователь очищает данные приложения
Поскольку onTokenRefresh устарело , я проверил onNewToken , согласно документации
Вызывается при создании нового токена для проекта Firebase по умолчанию.
Это вызывается после установки приложения при первом создании токена и снова при изменении токена.
Q1. Как узнать, какой проект Firebase используется по умолчанию в случае нескольких идентификаторов отправителей?
Q2. Предположим, если «authorEntity1» связан с проектом Firebase по умолчанию, значит ли это, что onNewToken будет вызываться только тогда, когда token1 будет изменен? или он также будет вызван, когда token2 будет изменен? Если это не работает для token2, то как узнать, что token2 нужно обновить?
Q3. Со ссылкой this Насколько я понимаю, onTokenRefresh будет вызываться всякий раз, когда необходимо обновить любой токен (не только для проекта по умолчанию). Это понимание правильно?
Я хочу отправлять обновленный токен на сервер всякий раз, когда система определяет, что token1 или token2 необходимо обновить.
Примечание: Я инициализирую firebase в своем классе приложений, поскольку имею дело с несколькими идентификаторами отправителей.