android - Google Cloud Messaging (GCM) 为每个设备和用户发放多少个注册 ID?

标签 android push-notification google-play google-cloud-messaging

我正在我的服务器上实现 GCM 处理程序。 Google 是否为每个设备或每个用户颁发新的注册 ID?我知道他们为每个应用程序版本和用户颁发一个新 ID,但这是否会扩展到用户安装了该应用程序的每台设备?

最终,我问这个问题是因为我想知道应该如何存储用户的应用程序向我的服务器端发送的注册 ID。

现在我已经实现了,最近发送的 ID 是用户唯一的注册 ID,但我不确定这是否是对 GCM 如何处理注册 ID 进行建模的错误方法。我倾向于认为这是不正确的,我必须根据某些标准保留许多 ID 的记录。

如有任何意见,我们将不胜感激。

最佳答案

基本上,GCM 会为每个安装了应用程序的设备颁发一个新的注册 ID。为了回答您的问题,每台设备 1 个注册 ID。

GCM 对您自己的用户一无所知,因此,如果用户 X 和 Y 使用同一设备,则由您来实现如何筛选发送给用户 X 和 Y 的消息的逻辑。

这是来自 docs 的内容:

A registration ID isn't associated with a particular logged in user. If you unregister and then re-register, GCM may return the same ID or a different ID—there's no guarantee either way. To make sure that messages go to the intended user:

  • Your app server can maintain a mapping between the current user and the registration ID.
  • The app can then check to ensure that messages it receives match the logged in user.

最后一个项目符号中的整个“匹配”概念就是我所说的筛选的意思。

关于android - Google Cloud Messaging (GCM) 为每个设备和用户发放多少个注册 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870967/

相关文章:

android - 为所有屏幕尺寸设置背景图像

android - 当应用程序以不同方式打开/关闭时显示推送通知

android - 如何将付费应用程序用户帐户链接到系统?

java - Unity3D 插件 - 未找到 Google Play 服务资源

android - 将参数从 AsyncTask 传递给方法

android - 将 setError 属性设置为 null 后,TextInputLayout 删除了 EditText 样式

ios - 使用 Firebase 实时数据库发送聊天应用程序构建的推送通知

ios - 如何在应用程序处于后台时将推送通知有效负载插入数据库

Android 应用总安装选项未显示在 Google Play Android 应用上

安卓相机实现