Java 将注册ID发送到后端

Java 将注册ID发送到后端,java,android,google-cloud-messaging,Java,Android,Google Cloud Messaging,我在Android开发站点上遵循客户端GCM代码;我遇到了这样一个问题: private void sendRegistrationIdToBackend() { // Your implementation here. } 现在的问题不是在那里实现什么,我知道如何执行httpost,并将参数发送到服务器 我的问题是,我应该将此信息发送到数据库中的什么位置 我正在一个已经注册用户的应用程序中实现GCM,所以我有一个usersMySQL表。下面是我的问题:从我所读到的内容来看,注册ID

我在Android开发站点上遵循客户端GCM代码;我遇到了这样一个问题:

private void  sendRegistrationIdToBackend() {
    // Your implementation here.
}
现在的问题不是在那里实现什么,我知道如何执行
httpost
,并将参数发送到服务器

我的问题是,我应该将此信息发送到数据库中的什么位置

我正在一个已经注册用户的应用程序中实现GCM,所以我有一个
users
MySQL表。下面是我的问题:从我所读到的内容来看,注册ID与用户之间是否有独特的关系如果是,我可以将该用户的注册ID放入“我的用户”表的新列中吗?我看到的唯一问题是:如果该用户在多个设备上使用该应用程序该怎么办。这让我觉得我的逻辑是错误的。如果这是错误的


…我是否应该像我在演示中看到的那样,将注册ID放在他们自己的表中?如果是这样,是否应该将它们与用户ID放在同一行,以便可以将注册ID标识给特定的用户(而不仅仅是设备)

这取决于你的应用想要做什么:

  • 如果用户只使用一台设备,则可以将其放入用户表中
  • 如果用户可以有多个设备,并且应该向所有设备发送相同的通知,则可以为每个用户提供一个注册ID列表(一对多表)
  • 如果每个设备都有不同的通知,则应为设备添加一个表,并在其中添加注册id

这取决于你的应用程序想要做什么:

  • 如果用户只使用一台设备,则可以将其放入用户表中
  • 如果用户可以有多个设备,并且应该向所有设备发送相同的通知,则可以为每个用户提供一个注册ID列表(一对多表)
  • 如果每个设备都有不同的通知,则应为设备添加一个表,并在其中添加注册id

用户和注册ID之间的关系是多对多:

  • 正如您所意识到的,如果一个用户有多个设备,那么该用户将与多个注册ID关联
  • 如果在单个设备上,一个用户注销,另一个用户登录,则两者都将与相同的注册ID关联。但是,在这种情况下,您可以在将注册ID与新用户关联之前取消与旧用户的关联。这将用户和注册ID之间的关系简化为一对多

考虑到这两点,让一个表包含每个注册ID的一个用户ID是可行的。用户注销时不要忘记删除此表中的条目,因为当用户在特定设备中注销时,提供给该应用实例的注册ID将不再与该用户关联。

用户与注册ID之间的关系是多对多:

  • 正如您所意识到的,如果一个用户有多个设备,那么该用户将与多个注册ID关联
  • 如果在单个设备上,一个用户注销,另一个用户登录,则两者都将与相同的注册ID关联。但是,在这种情况下,您可以在将注册ID与新用户关联之前取消与旧用户的关联。这将用户和注册ID之间的关系简化为一对多

考虑到这两点,让一个表包含每个注册ID的一个用户ID是可行的。用户注销时不要忘记删除此表中的条目,因为当用户在特定设备中注销时,提供给该应用实例的注册ID将不再与该用户关联。

您还可以使用通知密钥对与单个用户相关的注册ID进行分组。


这样,每个用户只需发送一条消息,GCM就会处理其余的信息。

您还可以使用通知密钥对与单个用户相关的注册ID进行分组。


这样,每个用户只需发送一条消息,GCM就会处理其余的信息。

Ok,这很有意义。因此,我认为一个带有user_id和reg_id的表可以用于多设备场景。我会把这个标记正确的。好的,这样才有意义。因此,我认为一个带有user_id和reg_id的表可以用于多设备场景。我会把这个标对的。