onMessageReceived () расширенного FirebaseMessagingService вызывается поздно - PullRequest
1 голос
/ 04 марта 2020

Я следовал инструкциям Google (https://firebase.google.com/docs/cloud-messaging/android/receive) для получения уведомлений. Мое приложение использует две разные платформы уведомлений pu sh, и все работает нормально. Одна из этих двух платформ не предоставляет никакого идентификатора канала. Поэтому я переписал onMessageReceived (), чтобы перехватить удаленное сообщение и сгенерировать свое собственное уведомление с нужным каналом. Это тоже работает.

Вот моя проблема: onMessageReceived () вызывается после отображения уведомления! Поэтому я всегда получаю два уведомления. Сначала я получаю удаленное сообщение, и после этого отображается мое сгенерированное уведомление! Если я помещаю отладчик между ними и останавливаюсь в onMessageReceived (), первое сообщение уже поступило в панель уведомлений. Есть идеи?

class MyFirebaseMessagingService : FirebaseMessagingService() {

    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        remoteMessage.data.isNotEmpty().let {  
             sendNotification(remoteMessage)
        }
    }

    private fun sendNotification(remoteMessage: RemoteMessage) {
        // generate my own notification
    }
}

Да, служба зарегистрирована в манифесте, метод всегда вызывается, сообщение «Данные» и «Уведомление» - ноль.

...