在GCM Advanced Topics ,在为什么你应该很少取消注册 标题下,有两个关于注册的说法似乎相互矛盾。
首先:
"A regID maps an app to a device. It isn't associated with a particular logged in user."
我认为映射是一一对应的(或者应该是)。
第二:
"Your app server should maintain a mapping between the current user and the regID."
但是,第一个声明断言没有这样的关联。 (大概“当前用户”是 使用应用服务器“登录”,但文档没有指定这一点。)
我的问题是文档是否应该修改如下:
GCM 维护从 regID 到设备的映射。 [术语“映射”最有可能表示函数关系,但未具体说明。]
GCM 不维护从 regID 到当前用户的映射。
- 假定当前用户与 regID 之间存在一对一的对应关系。
- 您的(第 3 方)应用程序服务器应维护当前用户和 regID 之间的映射。
开发人员如何解释第一条和第二条语句?
最佳答案
我看不出有什么矛盾。如第一个引述所述,为每台设备上的每个应用程序分配了一个注册 ID(这意味着同一设备上的不同应用程序具有不同的注册 ID,而在不同设备上同一应用程序具有不同的注册 ID)。
由于 GCM 不关心哪个用户登录到特定设备上的特定应用程序(这样的登录是 GCM 一无所知的应用程序特定逻辑),具有登录功能的应用程序应该保持跟踪(在用户当前在每个设备上登录的第 3 方服务器),并将注册 ID 与该用户相关联(以便服务器仅将与该用户相关的 GCM 消息发送到用户登录的设备) .
至于你写的语句:
- 这是不准确的。映射(如谷歌所述)在应用程序和设备之间。
- 正确
- 这取决于特定应用程序的逻辑来确定(应用程序不一定具有登录功能)。
- 这是真的,假设应用程序具有登录功能。
关于android - 关于 GCM 注册的文档不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833358/