我正在关注 Android 开发站点上的客户端 GCM 代码;我遇到了这个:
private void sendRegistrationIdToBackend() {
// Your implementation here.
}
现在这个问题不是要在那里实现什么,我知道如何执行 httppost
并将参数发送到服务器。
我的问题是,我应该将其发送到我的数据库中的何处?
我在一个已经有注册用户的应用程序中实现 GCM,所以我有一个 users
MySQL 表。现在这是我的问题:根据我的阅读,RegistrationId 与用户有独特的关系吗? 如果是这样,我是否可以将用户的 RegistrationId 放入我的用户表中的新列中?我看到的唯一问题是:如果用户在多个设备。所以这让我觉得我的逻辑是错误的。如果错了...
..我是否应该按照我在演示中看到的那样做并将注册 ID 放在他们自己的表中——如果是这样,是否应该将它们与用户 ID 放在同一行这样reg Id 可以识别给特定用户(而不仅仅是设备)?
最佳答案
用户和注册ID之间的关系是多对多的:
- 如您所知,如果用户拥有多个设备,则该用户将与多个注册 ID 相关联。
- 如果在一台设备上,一个用户注销而另一个用户登录,则两者将与同一个注册 ID 相关联。但是,在这种情况下,您可以先取消注册 ID 与旧用户的关联,然后再将其关联到新用户。这会将用户与注册 ID 之间的关系简化为一对多。
考虑到这两点,有一个包含每个注册 ID 和一个用户 ID 的表是可行的。只是不要忘记在用户注销时从该表中删除条目,因为当用户在特定设备上注销时,提供给该应用程序实例的注册 ID 不再与该用户相关联。
关于java - 将 RegistrationId 发送到后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25981170/