2014-09-22 40 views
1

我正在关注Android开发站点上的客户端GCM代码;我碰到这样的:发送注册到后端

private void sendRegistrationIdToBackend() { 
    // Your implementation here. 
} 

现在,这个问题是不是落实在那里,我知道该怎么做httpost的发送PARAM的服务器。

我的问题是哪里我可以在我的数据库中发送这个吗?

我在一个应用程序,已经拥有注册用户执行的GCM,所以我有一个users MySQL表。下面是我的问题:从我读过的内容来看,RegistrationId与用户有着独特的关系吗? 如果是这样,我可以将用户的RegistrationId放入用户表中的新列吗?我看到的唯一问题:如果用户在多个设备上使用应用程序怎么办?所以这让我觉得我的逻辑是错误的。如果它是错误的...

..我应该做什么,我已经看到在演示中,并将注册ID的自己的表 - 如果是这样,应该放在那里与用户ID在相同的行,这样一个注册ID可以被识别给一个特定的用户(不只是设备)?

回答

2

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

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

鉴于这两点,对于每个注册ID包含一个表,用户ID将工作。当用户注销时,请不要忘记从该表中删除条目,因为当用户注销特定设备时,赋予应用程序实例的注册ID不再与该用户关联。

+1

好的,这是有道理的。所以我认为一个包含user_id和reg_id的表格可以用于多设备场景。我会标记这是正确的。 – KickingLettuce 2014-09-22 19:03:52

1

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

  • 如果用户仅使用一个设备,你可以把它在user表。
  • 如果用户可以有多个设备,并且应该向所有人发送相同的通知,则可以为每个用户(一对多表)提供一个注册ID列表。
  • 如果每个设备都有不同的通知,您应该为设备添加一个表,并在其中添加注册ID。