FCM onMessageReceived () не вызывается, даже когда приложение находится на переднем плане - PullRequest
0 голосов
/ 31 октября 2018

UPDATE

Очевидно, что если я нажму "проверить на устройстве" и предоставлю регистрационный токен, все будет хорошо ... все еще не уверен, как работать с новыми устройствами с помощью того же приложения. Я могу добавить их все вручную, нажать кнопку «Тест на устройстве», и они все получат сообщение, но если я нажму кнопку «Опубликовать» и выберу приложение, только первое получит сообщение.

=============================================== ===========================

Я пытаюсь интегрировать FCM в свое приложение.

Мое приложение на переднем плане

Сначала я пошел сюда , однако этому вопросу 10 месяцев, и похоже, что расширение FirebaseIDService больше не требуется.

У меня правильно настроен google-services.json

Я добавил правильные зависимости в файл моего проекта .gradle:

classpath 'com.google.gms:google-services:4.2.0' // google-services plugin

А также в файл приложения .gradle:

dependencies {
    //...
    implementation 'com.google.firebase:firebase-core:16.0.4'
    implementation 'com.google.firebase:firebase-messaging:17.3.4'
}

apply plugin: 'com.google.gms.google-services'

Это услуга, которую я добавил в свой манифест:

    <service android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

Это услуга, которую я расширяю:

class MyFirebaseMessagingService : FirebaseMessagingService()
{
    companion object {
        const val TOKEN_REFRESHED_EVENT = "token_refreshed_event"
    }

    override fun onNewToken(token: String?) {
        Log.d("MyFcmMessagingService", "Refreshed token: " + token!!)
        LocalBroadcastManager.getInstance(this).sendBroadcast(Intent(TOKEN_REFRESHED_EVENT))
    }

    override fun onMessageReceived(remoteMessage: RemoteMessage?) {
        Log.d("MyFcmMessagingService", "From: " + remoteMessage!!.from!!)
    }
}

Метод onNewToken работает просто отлично. Когда я пытаюсь отправить уведомление с консоли Firebase, ничего не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...