Android FCM返回错误:第一条消息后未注册
我按照firebase.google.com上的说明在我的项目中添加FCMAndroid FCM返回错误:第一条消息后未注册,android,push-notification,firebase-cloud-messaging,Android,Push Notification,Firebase Cloud Messaging,我按照firebase.google.com上的说明在我的项目中添加FCM一切正常,我在日志中收到消息“FirebaseApp初始化成功”和新令牌。但它不起作用。。。只有我发送给令牌的第一个推送通知才获得成功。第二次推送和静止获取错误“NotRegistered” 文件说 如果未注册,则应从服务器数据库中删除注册ID,因为应用程序已从设备中卸载,或者客户端应用程序未配置为接收消息 但应用程序没有被删除,客户端应用程序被配置为接收消息,因为第一条消息到达客户端我挣扎了几个小时,但发现了问题。这真的
一切正常,我在日志中收到消息“FirebaseApp初始化成功”和新令牌。但它不起作用。。。只有我发送给令牌的第一个推送通知才获得成功。第二次推送和静止获取错误“NotRegistered”
文件说 如果未注册,则应从服务器数据库中删除注册ID,因为应用程序已从设备中卸载,或者客户端应用程序未配置为接收消息
但应用程序没有被删除,客户端应用程序被配置为接收消息,因为第一条消息到达客户端我挣扎了几个小时,但发现了问题。这真的很难找到,也很难解释。我会尝试: 我的项目有一个依赖项,其中包含另一个依赖项:
My project>Dependency>Sub Dependency
子依赖项包含一个带有
标记的AndroidManifest.xml
文件。诸如此类:
<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注册令牌
我建议您检查您的依赖项,看看哪一个有应用程序标记,并更新/替换它。这对我有用 检查是否正在调用
onTokenRefresh()
方法。这意味着令牌已更新,您必须使用新令牌。您是否正在使用firebase控制台发送通知?或者您正在使用自己的服务器实现。在我的情况下,onTokenRefresh仅在程序第一次启动时或清除所有应用程序数据后调用一次。我正在使用自己的服务器实现Nikita,请在发送第一个通知后尝试打印令牌。只是为了确保令牌没有改变。使用FirebaseInstanceID.getToken()
并在发送通知后验证令牌是否相同。如果它为空是因为令牌由于某种原因被删除。我有同样的问题。。。FirebaseInstanceId.getInstance().getToken()返回与服务器上相同的令牌。当我用curl在我的机器上测试时,结果是“未注册”的,对此有什么见解吗?我也有同样的问题。这不是npm包中的“子依赖项”吗?如果是,您是如何更新的?