我们刚刚从GCM迁移到FCM。为了跟踪卸载,我们向所有用户发送无声通知,如果我们收到了#34; NotRegistered"响应我们将用户视为已卸载。自从过去几天开始,我们开始接受" NotRegistered"对于某些尚未卸载该应用的用户。
在查询相同注册令牌的FCM诊断时,正在传递消息,但它们一直处于接受状态。附件是屏幕截图。我在发送邮件时收到的错误代码仍然是" NotRegistered" 。用户尚未卸载app.Attached是屏幕截图。
我们正在接受"未注册"从6月1日开始,消息处于接受状态,直到6月4日。此图像显示截至6月4日的通知消息ID:
想澄清以下内容:
为什么FCM注册令牌的状态更改为NotRegistered。自上个月以来没有升级,用户长时间以来一直在使用最新版本?
检查FCM错误代码" NotRegistered"跟踪卸载的完整证明方式?是否有更好的机制可用?
答案 0 :(得分:7)
NotRegistered
中出现NotRegistered
为何发生的原因在docs中陈述,第三个,是您案件的可能原因(强调我的):
现有的注册令牌可能在许多情况下停止有效,包括:
- 如果客户端应用程序取消注册FCM。
- 如果客户端应用程序自动取消注册,则可能会在用户卸载应用程序时发生。例如,在iOS上,如果APNS反馈服务将APNS令牌报告为无效。
- 如果注册令牌过期(例如,Google可能决定刷新注册令牌,或者iOS设备的APNS令牌已过期)。
- 如果客户端应用程序已更新,但新版本未配置为接收消息。
对于所有这些情况,请从应用服务器中删除此注册令牌,然后停止使用它来发送消息。
不。正如我上面链接的那样,{"headers": {"Authorization": "Bearer " + token, "Content-Type": "application/json"}}
错误不仅在卸载期间触发。 AFAIK,没有标准的方法。看一下these posts。