gpt4 book ai didi

firebase - FCM 404 "Requested entity was not found"错误代码 : "UNREGISTERED"

转载 作者:行者123 更新时间:2023-12-04 15:50:28 112 4
gpt4 key购买 nike

我正在使用 WebPush在我的项目中,它在大多数情况下运行良好。但是,偶尔 - 通常在长时间使用后 - 用户会收到 404 错误,并带有以下 JSON 响应:

{
"error": {
"code": 404,
"message": "Requested entity was not found.",
"status": "NOT_FOUND",
"details": [
{
"@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError",
"errorCode": "UNREGISTERED"
}
]
}
}

似乎正在发生的事情是 token 即将到期。函数 onTokenRefresh()被多次引用,但几乎没有关于如何实现的文档,当然也没有关于如何测试的文档。一些用户报告清除缓存会强制刷新 token ;对我来说不是这样。

这个问题我已经有将近6个月了,定期回来查看文档有没有改进,但是这个问题没有明确的解决方案。

任何在这一点上进行测试的解决方案都将不胜感激。我确信还有其他人使用记录不足的 WebPush类似问题的通知。

最佳答案

onTokenRefresh() (现已弃用。使用 onNewToken(String s) 实现 FirebaseMessagingService,查看其他答案 FirebaseInstanceIdService is deprecated )每次安装的应用程序获取新 token 时都会调用,无论是什么原因(例如,如果用户转到“应用程序”android 配置菜单选项,选择您的应用程序并按“清除数据”,但这只是一个原因)。

您必须使用此方法来调用您的后端并更新您存储先前 token 的位置,以便您的后端不再使用它来向它发送任何已过期的消息(从而抛出 NOT_FOUND/UNREGISTERED 错误)。

不要忘记在您的 AndroidManifest.xml 中添加以下内容如文档中所述:

Include the following in the manifest:

<service android:name=".YourFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>



新文档 FirebaseMessagingService :

https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService

关于firebase - FCM 404 "Requested entity was not found"错误代码 : "UNREGISTERED",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51951864/

112 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com