Android gcm注册数据库管理



我正在尝试使用谷歌云消息构建一个应用程序。

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

在示例中,谷歌让我在设置InstanceId时编写sendRegistrationToServer()方法(点击这里),但我在网上找不到任何关于如何管理此类事情的线索。

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

(如果有人能提供一个小的数据库结构的例子,它将使我的一天!)

因为tokens注册一个应用程序或电话和users一个用户(这意味着注册活动获得用户名和密码,我还没有做到),我有点不想把它们混合在同一个表中,但是我可能对token的用途有误解。

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


编辑:现在我知道整个过程了:

  1. 注册活动->注册用户
    • 发送电子邮件地址和安全密码到您的服务器
  2. 连接活动->连接用户
    • 获取gcm_token并将其发送到您的服务器,然后将其与连接信息进行映射

这个现在看起来很简单明了,但当时真的没有,所以也许它可以帮助别人…

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

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

你应该将你的应用生成的用户id映射到令牌,注意一个用户可能有许多有效的令牌与之关联。您不必将令牌与用户的用户名和密码一起存储,但应该有一些用户id到令牌的映射。

,

User (uid, uname, pword)

Token (uid, token_value)

gcm应该与用户对象相关联。一旦用户获得了他的gcm令牌,它就是一个用户令牌,而不是您可能认为的设备令牌。

对于一个简单的数据库集成在你的应用程序,我建议你使用Parse.com和他们的android指南开始。

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

最新更新