java - 将 RegistrationId 发送到后端

标签 java android google-cloud-messaging

我正在关注 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/

相关文章:

java - 我如何在子类java中使用父类(super class)方法

java - database.sqlite.SQLiteOpenHelper.getDatabaseLocked+Null PointerExpception 错误Android Studio

java - GcmListenerService.onMessageReceived() 未调用

java - 设置非标准 java vm 选项 -Xms 不带 -X

java - Spring RestTemplate 抛出 400 错误异常,但 CloseableHttpClient 不会

Android等待网络可用

android - 如何为 android 创建简单的投票应用程序,如热门或不热门

java - GCM 推送消息一直保存在服务器上,直到新消息到达

java - 如何在我的安卓设备上实现推送通知

java - DCEVM java 补丁不起作用