我按照firebase.google.com上的说明在我的项目中添加了FCM。
一切都很好,我的日志中有“FirebaseApp初始化成功”消息和新标记。但它不起作用......只有我发送给令牌的第一个推送通知我才能获得成功。第二次推送和休息得到错误“NotRegistered”。
文档说
如果是NotRegistered,您应该从服务器数据库中删除注册ID,因为该应用程序是从设备中卸载的,或者客户端应用程序未配置为接收消息。
但是应用程序未被删除,客户端应用程序配置为接收邮件,因为第一条消息来到客户端
答案 0 :(得分:4)
我挣扎了几个小时,但我发现了问题。这也很难找到并解释。我会尝试:
我的项目依赖于另一个依赖项:
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注册令牌。
我建议您检查您的依赖项,以查看哪个具有应用程序标记并更新/替换它。它对我有用!