Я разрабатываю приложение android, которое использует облачные сообщения Firebase.
Есть одно устройство (Android S10 - Android 10), которое вызывает у меня головную боль.
Исходный поток:
1 - MainActivity:
FirebaseMessaging.getInstance().setAutoInitEnabled(true);
2 - Служба уведомлений:
2.1 - onNewToken
2.2 - сохранение токена в базе данных комнаты для будущего использования
3 - Когда пользователь вошел в систему, отправьте токен в API
4 - API начнет отправлять PU SH УВЕДОМЛЕНИЯ для этого токена
This flow работает для всех других протестированных устройств (Motorola x4 - Android 8, Motorola One Zoom - Android 9, Samsung S9 - Android 10, Samsung S20 - Android 10), но по какой-то причине не работает на этом S10, когда APK подписан и скомпилирован для выпуска.
По причинам отладки попытался изменить кучу кода. Изменено:
FirebaseMessaging.getInstance().setAutoInitEnabled(true);
Кому:
FirebaseApp.initializeApp(getApplicationContext());
без эффектов на любом устройстве
Попытка добавить приведенный ниже код в MainActivity 'onCreate
:
FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(task -> {
if (!task.isSuccessful()) {
return;
}
//save token for future use here
});
без эффектов
Попытка удалить instaceId перед вызовом кода выше: FirebaseInstanceId.getInstance().deleteInstanceId();
без эффектов тоже
Единственный способ получить токен пожарной базы для этого телефона был когда я использовал приведенный выше код (FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(...);
) в своем Application.onCreate()
Это не было бы проблемой, если бы оно работало вообще.
Попытался отправить уведомление pu sh для этого токена, полученного из Application.onCreate()
, но он никогда не получает его.
Я использую все последние версии библиотек
Пытался поместить строку ниже в конфигурации proguard:
-keep class com.google.firebase.** { *; }
Есть предложения?