案例如下:
1. 用户在他们的iPhone A上登录应用程序。 2. 用户在他们的iPhone B上登录同一应用程序。
现在,在数据库中,一个用户有两个令牌,这是正确的。
1. 用户在他们的iPhone A上登录应用程序。 2. 用户在他们的iPhone B上登录同一应用程序。
现在,在数据库中,一个用户有两个令牌,这是正确的。
+---------+-------------------+
| user_id | device_token |
+---------+-------------------+
| 1 | 1st_device_token1 |
| 1 | 2nd_device_token1 |
+---------+-------------------+
假设用户删除了应用程序,然后在两个设备上重新安装了它,这意味着APNs中的令牌已更改,因此在我们的数据库中有4个唯一的令牌。
+---------+-----------------------+
| user_id | device_token |
+---------+-----------------------+
| 1 | 1st_device_token1 |
| 1 | 2nd_device_token1 |
| 1 | 1st_device_token1_new |
| 1 | 2nd_device_token1_new |
+---------+-----------------------+
现在,将会向4个设备(4个令牌)发送该用户的推送通知。
如果他们不断删除并安装应用程序(可能会发生: ),那么我将在数据库中为一个用户存储大量令牌,并认为他们拥有如此多的设备,而实际上有很多无效的令牌。
如何防止这种情况?