Ios 如何防止数据库中的APNS设备令牌冗余

Ios 如何防止数据库中的APNS设备令牌冗余,ios,apple-push-notifications,devicetoken,javapns,Ios,Apple Push Notifications,Devicetoken,Javapns,我正在为我的应用程序使用apns通知,为此,我将apns设备令牌存储在我的sql数据库中 问题是,每次用户删除或安装应用程序时,它都会生成一个新的设备令牌,并将其存储在数据库中,因为同一用户可以有多个设备,所以我无法更新该用户的令牌,并创建新记录。这使得同一设备和同一用户的多个记录丢失。以后可能会导致性能问题 请帮忙。如何解决为同一用户存储多个令牌的问题。很抱歉,我们通过运行另一个作业解决了此问题,该作业用于删除存储在数据库中的APNS令牌,而不是最新的令牌 我们的数据库为每个用户和每个设备存储

我正在为我的应用程序使用apns通知,为此,我将apns设备令牌存储在我的sql数据库中

问题是,每次用户删除或安装应用程序时,它都会生成一个新的设备令牌,并将其存储在数据库中,因为同一用户可以有多个设备,所以我无法更新该用户的令牌,并创建新记录。这使得同一设备和同一用户的多个记录丢失。以后可能会导致性能问题


请帮忙。如何解决为同一用户存储多个令牌的问题。

很抱歉,我们通过运行另一个作业解决了此问题,该作业用于删除存储在数据库中的APNS令牌,而不是最新的令牌

我们的数据库为每个用户和每个设备存储APNS令牌。取决于这些独特性。数据库中只保存每个设备的最新令牌,以防止在同一设备上发出多个通知

另一种解决方案是使用upset(insert或update),如果任何设备已经有令牌,则使用新的令牌或insert更新令牌


我觉得IOS应该提供可靠的API来处理这个问题。当前的删除令牌API不可靠。

您需要从APNS反馈服务获取数据,以确定哪些令牌不再处于活动状态,并从数据库中清除这些令牌,但是,如果您为同一用户和设备获取新令牌,则可以替换旧令牌。复合密钥(用户、设备)是唯一的,但同一用户可以同时拥有多个设备,如iphone 6和iphone 5,并且应用程序不会阻止他同时在多个设备上注册。所以用户可以有多个设备令牌,并且它不会变得唯一。我还发现同一个设备的许多设备令牌都处于活动状态。e、 g.如果我删除并安装应用程序,它会在10分钟内5次创建5个令牌,并且所有令牌似乎都处于活动状态,发送给所有令牌的通知消息都会返回成功。这就是为什么您需要识别设备:将供应商的
标识存储在表中。然后你可以判断这是你以前见过的设备还是新设备哦,我不知道,即使我删除或重新安装应用程序,供应商的标识也会保持不变,如果用户格式化设备,它还会保持不变吗,因为我需要为该应用程序的用户+设备组合创建一条记录。如果设备重新格式化,供应商的
标识将更改。如果他们重新安装该应用程序,则可能会发生更改。这就是为什么您需要使用APNS反馈服务定期清除数据库中的无效设备令牌的原因。您使用什么作为此项的设备标识符?