我正在尝试使用Google Cloud Messaging构建应用。
我使用google gcm示例,几乎没有修改,到目前为止,我可以在我的客户端应用程序和我的个人小php服务器之间发送消息。 (这里没有代码问题)
在示例中,谷歌设置sendRegistrationToServer()
方法(click here)让我在设置InstanceId
时写入,但我在网上找不到任何关于如何管理的线索这样的事情。
我的数据库应如何处理用户和令牌?
(如果某人可以提供一个小的数据库结构示例,它将成为我的一天!)
由于tokens
注册了一个应用或手机,users
用户(这意味着注册活动以获取用户名和密码,而我还没有注册),我有点不喜欢我想把它们混合在同一张桌子里,
但我可能对令牌的目的有误解。
例如,我想知道为什么似乎没有人在SharedPreferences中保存令牌......
编辑:现在我完成整个过程:现在这看起来如此简单明了,但当时真的没有,所以也许它可以帮助其他人......
答案 0 :(得分:1)
gcm应与用户对象相关联。 一旦用户获得了他的gcm令牌,就会产生用户令牌,而不是您想象的设备令牌。
对于您应用内的简单数据库集成,我建议您使用Parse.com及其Android指南进行入门。
每次打开应用程序时,令牌都会获得授权,并且可能会随着时间的推移而改变 - 这就是为什么没有人保存它并重复使用相同的令牌evreytime
答案 1 :(得分:1)
令牌可能会更改,因此将其存储在共享首选项中没有用处,最好调用InstanceID.getToken,这样您就可以确保始终获得正确的令牌值。重要的是要知道您是否已将最新的令牌发送到您的应用程序服务器,此布尔值应存储在共享首选项中。
你应该有一个扩展InstanceIDListenerService的类,你可以在其中实现onTokenRefresh来处理新的令牌。
您应该将应用生成的用户ID映射到令牌,请注意,单个用户可能拥有许多与之关联的有效令牌。您不必使用用户的用户名和密码存储令牌,但应该将用户ID映射到令牌。
例如:
用户(uid,uname,pword)
令牌(uid,token_value)