Android gcm注册数据库管理

时间:2015-10-25 00:38:13

标签: android connection google-cloud-messaging token user-management

我正在尝试使用Google Cloud Messaging构建应用。

我使用google gcm示例,几乎没有修改,到目前为止,我可以在我的客户端应用程序和我的个人小php服务器之间发送消息。 (这里没有代码问题)

在示例中,谷歌设置sendRegistrationToServer()方法(click here)让我在设置InstanceId时写入,但我在网上找不到任何关于如何管理的线索这样的事情。

  

我的数据库应如何处理用户和令牌?

     

(如果某人可以提供一个小的数据库结构示例,它将成为我的一天!)

由于tokens注册了一个应用或手机,users用户(这意味着注册活动以获取用户名和密码,而我还没有注册),我有点不喜欢我想把它们混合在同一张桌子里, 但我可能对令牌的目的有误解。

例如,我想知道为什么似乎没有人在SharedPreferences中保存令牌......

编辑:现在我完成整个过程:

  1. 注册活动 - >注册您的用户
    • 将电子邮件地址和安全密码发送到您的服务器
  2. 连接活动 - >连接您的用户
    • 获取gcm_token并将其发送到您的服务器,然后使用连接信息进行映射
  3. 现在这看起来如此简单明了,但当时真的没有,所以也许它可以帮助其他人......

2 个答案:

答案 0 :(得分:1)

gcm应与用户对象相关联。 一旦用户获得了他的gcm令牌,就会产生用户令牌,而不是您想象的设备令牌。

对于您应用内的简单数据库集成,我建议您使用Parse.com及其Android指南进行入门。

每次打开应用程序时,令牌都会获得授权,并且可能会随着时间的推移而改变 - 这就是为什么没有人保存它并重复使用相同的令牌evreytime

答案 1 :(得分:1)

令牌可能会更改,因此将其存储在共享首选项中没有用处,最好调用InstanceID.getToken,这样您就可以确保始终获得正确的令牌值。重要的是要知道您是否已将最新的令牌发送到您的应用程序服务器,此布尔值应存储在共享首选项中。

你应该有一个扩展InstanceIDListenerService的类,你可以在其中实现onTokenRefresh来处理新的令牌。

您应该将应用生成的用户ID映射到令牌,请注意,单个用户可能拥有许多与之关联的有效令牌。您不必使用用户的用户名和密码存储令牌,但应该将用户ID映射到令牌。

例如:

用户(uid,uname,pword)

令牌(uid,token_value)