ОБНОВИТЬ:
По-видимому, если я нажму «тест на устройстве» и предоставлю регистрационный токен, все будет работать нормально ... все еще не уверен, как обрабатывать новые устройства с тем же приложением. Я могу добавить их все вручную, нажать кнопку «Проверить на устройстве», и все они получат сообщение, но если я нажму кнопку «Опубликовать» и выберу приложение, только первое приложение получит сообщение.
================================================== ========================
Я пытаюсь интегрировать 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, ничего не происходит.
не уверен, что это поможет, я нашел это: firebase.google.com/support/faq/#fcm-android-background