我正在使用 Web 服务与数据库通信,其中我正在对服务器上的记录进行插入、更新、检索和删除。我只使用了两个字段:id、文本。我想问一下,我可以使用 gcm 注册 ID 作为唯一设备 ID 存储在我的数据库的 id 字段中,还是应该使用其他 id 作为 IMEI 号进行 CRUD 操作并完全使用其他 Web 服务来注册 GCM 注册ID。
正如我听说的那样,GCM 注册 ID 往往会刷新和重新生成,有时也会为空,因此将其存储为数据库中记录的唯一 ID 可能不是一个好主意。
我正在使用 Web 服务与数据库通信,其中我正在对服务器上的记录进行插入、更新、检索和删除。我只使用了两个字段:id、文本。我想问一下,我可以使用 gcm 注册 ID 作为唯一设备 ID 存储在我的数据库的 id 字段中,还是应该使用其他 id 作为 IMEI 号进行 CRUD 操作并完全使用其他 Web 服务来注册 GCM 注册ID。
正如我听说的那样,GCM 注册 ID 往往会刷新和重新生成,有时也会为空,因此将其存储为数据库中记录的唯一 ID 可能不是一个好主意。
GCM 注册 ID 不适合作为数据库中的主键,原因如下:
它很长(通常为 100-200 字节,根据谷歌的说法,它可以大到 4096 字节)。至少在某些数据库中,您将无法在该列上定义索引。
如果您的服务器为多个应用程序提供服务,则每台设备将有多个注册 ID(每个应用程序一个)。
如果用户卸载并重新安装该应用程序,则可能会为该应用程序分配一个新的注册 ID。
您应该生成自己的 id 并改用它(UUID、DB 序列或其他)。
我认为最好使用IMEI
数字。
GCM id 可以更改。所以它更好,不要将它用作唯一 ID。您可以使用 UUID。