FCM返回错误:第一条消息后出现“未注册”的错误。

17
我按照 firebase.google.com 上的说明将 FCM 添加到我的项目中。一切都很顺利,我在日志中看到了“FirebaseApp initialization successful”和新的令牌。 但是它没有起作用...只有第一条发送到令牌的推送通知成功,发送第二条和其余的时候会出现“NotRegistered”的错误。
文档说明:

  

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

但是应用程序并没有被删除,而且客户端应用已配置好接收消息,因为第一条消息已经成功传递给客户端。

检查onTokenRefresh()方法是否正在被调用。这意味着token已经更新,你必须使用新的token。 你是在使用Firebase控制台发送通知吗?还是使用自己的服务器实现? - GeorgeLBA
有什么见解吗?我也遇到了同样的问题。 - checkmate711
我们在 Firebase for web 中一直遇到这个问题,特别是在 Chrome 的情况下。 - Kedar Parikh
面临相同的问题..有人解决了吗? - NMathur
我也遇到了这个问题。 - Fahriyal Afif
显示剩余3条评论
1个回答

3

我花了几个小时才发现问题所在。这真的很难找到并且也很难解释。我会尝试:

我的项目依赖于另一个依赖项: 我的项目 > 依赖项 > 子依赖项

子依赖项包含一个 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 注册令牌。

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


这个 npm 包里不是有一个“子依赖项”吗?如果是的话,你是怎么更新它的? - jbarradas
当我在应用程序标签中使用“replace”时,出现了崩溃。 - hoi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接