更新:
很明显,如果我点击“在设备上测试”并提供注册令牌,一切正常……仍然不确定如何使用同一应用处理新设备。我可以手动添加它们,单击“在设备上测试”按钮,它们都会收到消息,但是如果我单击“发布”按钮并选择应用程序,则只有第一个会收到消息。
================================================ =========================
我正在尝试将FCM集成到我的应用中。
我的应用位于前景
中我先去了here,但是,这个问题已经有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控制台发送通知时,什么也没发生。