После нескольких часов исследований, проб и ошибок я получил нечто подобное, чтобы преодолеть проблему.
Я обнаружил, что проблема в основном из-за Quick Blox SubscribeService .
Чтобы преодолеть это, следуйте нижеприведенному решению.
<service android:name="com.quickblox.messages.services.fcm.QBFcmPushInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
Удалитевышеуказанный сервисный тег из манифеста приложения. QBFcmPushInstanceIDService вызывается каждый раз, когда мы открываем приложение, и обновляется токен FCM, который вызывает следующее
SubscribeService.subscribeToPushes(this, true);
Там возникает ошибка.
SubscribeService необходимо вызывать только после успешного входа на сервер Quick Blox.Поэтому я удалил его из манифеста и использовал функции FCM по умолчанию.
// Get token for sending notification to device { Google FCM }
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(task -> {
if (!task.isSuccessful()) {
Log.warn("getInstanceId failed" + task.getException());
return;
}
// Get new Instance ID token
String token = task.getResult().getToken();
SubscribeService.subscribeToPushes(this, true);
});
Приведенный выше код должен быть запущен только после того, как вы войдете в сервер быстрого чата Blox