FCM在第一条消息后返回错误:NotRegistered

Nik*_*nov 14 android push-notification firebase-cloud-messaging

我按照firebase.google.com上的说明在我的项目中添加了FCM.
一切都很好,我已经在我的日志中收到消息"FirebaseApp初始化成功"和新鲜令牌.但它不起作用......只有我发送给令牌的第一个推送通知我才能获得成功.第二次推送和休息得到错误"NotRegistered".
文档说

如果是NotRegistered,则应从服务器数据库中删除注册ID,因为应用程序已从设备卸载,或者客户端应用程序未配置为接收消息.

但是应用程序未被删除,客户端应用程序配置为接收消息,因为第一条消息来到客户端

Joh*_*iro 3

我挣扎了几个小时,但我发现了问题。确实很难找到并解释。我会尽力:

我的项目与其中的另一个依赖项有依赖关系: 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>
Run Code Online (Sandbox Code Playgroud)

由于这个应用程序标签,我的依赖项需要执行此操作:

<manifest package="br.com.ilhasoft.support.databinding"
    xmlns:tools="http://schemas.android.com/tools">
    <application tools:node="replace"/>
</manifest>
Run Code Online (Sandbox Code Playgroud)

我的解决方案是通过删除应用程序标签来更新子依赖项,并更新依赖项以删除替换操作。

不知何故,firebase 忽略了我FirebaseMessagingService并撤销了我的 FCM 注册令牌。

我建议您检查您的依赖项,看看哪一个具有应用程序标签并更新/替换它。这对我有用!