我按照 firebase.google.com 上的说明在我的项目中添加了 FCM。
一切正常,我的日志中收到消息“FirebaseApp 初始化成功”和新 token 。但它不起作用......只有我发送到 token 的第一个推送通知我才能成功。第二次推和休息得到错误“NotRegistered”。
文档说
If it is NotRegistered, you should remove the registration ID from your server database because the application was uninstalled from the device, or the client app isn't configured to receive messages.
但应用程序没有被删除,客户端应用程序被配置为接收消息,因为第一条消息到达客户端
最佳答案
我挣扎了几个小时,但我找到了问题所在。也很难找到和解释。我会尝试:
我的项目有一个依赖关系,里面有另一个依赖关系:
My project > Dependency > Sub-dependency
子依赖包含一个 AndroidManifest.xml
文件 <application>
标签。类似的东西:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my_sub_library">
<application android:allowBackup="true">
</application>
</manifest>
因为这个应用程序标签,我的依赖需要这样做:
<manifest package="br.com.ilhasoft.support.databinding"
xmlns:tools="http://schemas.android.com/tools">
<application tools:node="replace"/>
</manifest>
我的解决方案是通过删除应用程序标记来更新子依赖项,并通过删除替换操作来更新依赖项。
不知何故,firebase 忽略了我的 FirebaseMessagingService
并撤销我的 FCM 注册 token 。
我建议您检查您的依赖项,看看哪个有应用程序标签并更新/替换它。它对我有用!
关于android - FCM 返回错误 : NotRegistered after the first message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083566/