我正在开发一个具有 Cloud 消息传递功能的iOS应用程序,并且正在尝试集成用户到用户消息传递的推送通知 . 但是,我遇到了一个问题,我将用一个假设的场景来说明:

  • 用户在设备1上下载应用程序,使用设备1的registration_id创建设备组(即其app app_id)并获取通知密钥

  • 用户在设备2上下载应用程序,使用其instance_id将设备2添加到设备组,因此通知将发送到设备1和设备2

  • 由于某种原因,设备1的registration_id发生了变化,例如应用程序重新安装或朋友登录和退出设备1上的帐户

然后我有两个问题:

1)我应该如何“注意”设备1的registration_id的变化?我想如果我在数据库中保存设备组详细信息,在应用启动时我可以将设备的registration_id与设备组的registration_id进行比较 . 然后,我可以将registration_id添加到设备组(如果它尚未包含在设备组中) . 有没有更好的方法呢?

2)如果设备1获得新的registration_id,则其旧的registration_id到期 . 如何检查这一点,从而知道哪些registration_ids已过期,应从设备组中删除?如果可以避免,我不希望保存过期的registration_ids加载?

谢谢!