2 个用户使用相同的设备和相同的应用程序但登录 ID 不同 - 他们是不是有不同的 gcm 注册 ID?

Posted

技术标签:

【中文标题】2 个用户使用相同的设备和相同的应用程序但登录 ID 不同 - 他们是不是有不同的 gcm 注册 ID?【英文标题】:2 users using same device and same app but different login id -do they have different gcm registration id?2 个用户使用相同的设备和相同的应用程序但登录 ID 不同 - 他们是否有不同的 gcm 注册 ID? 【发布时间】:2014-05-07 09:40:31 【问题描述】:

我已经创建了每个用户的 user_id(基于 email-id 的唯一 sno)和 GCM_id 的表。我有两个问题,

    两个不同 email_id 的用户能否从同一设备登录并接收该用户的 gcm?

    如何在我的数据库中创建和维护列。如果用户在不同的设备(移动设备、tab-android)上安装了应用程序但 email_id 相同,我需要哪些列才能使 gcm 正常工作?

我指的是 Android Hive 链接,但有人说它的 gcm(2012) 已被弃用。 http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

总结: 我需要采取哪些步骤才能使最新的 GCM 在多个设备上正常工作? 谢谢。 非常感谢任何帮助。在此先感谢。

【问题讨论】:

regId 取决于设备上的 google 帐户,而不是用于登录您的应用的电子邮件,所以我认为两个用户都会以 1 个用户的身份收到通知,这不是您想要的 那么如何在多个设备上将用户与他们的登录 ID(如 gmail)分开? 您可能会操纵 PAY_LOAD,将用户的电子邮件作为数据的一部分,因此您显示或处理电子邮件地址等于当前用户登录的通知...也许?! @Yazan 我该怎么做? 【参考方案1】:

您在给定设备上的应用将有一个注册 ID。您希望将该注册 ID 与当前登录用户的用户 ID 相关联。因此,当用户登录时,您应该将用户 ID + 注册 ID 发送到您的服务器并将它们存储在您的表中。当用户注销时,您应该将用户 ID 发送到您的服务器,并在您的数据库中清除该用户的注册 ID。

现在,如果您想为同一用户支持多个设备,则需要表格。一个用户 ID 表(其中用户 ID 是唯一的,并且可能是主键),另一个表用于将用户 ID 与注册 ID 关联(​​其中每个用户可能与多个注册 ID 关联)。同样,您在登录期间创建用户 ID - 注册 ID 关联,并在注销期间删除关联。

【讨论】:

我是具有 2 列 device_id 和 reg_id 的相同结构的东西,它将具有一系列设备/regid 对,因此它将发送到与 regid 关联的所有设备 id。你怎么看?另外,如果他没有注销。我怎样才能清除 regid。我的应用程序没有注销?有什么选择吗? @jason 如果没有注销,可以在新用户登录时隐式注销前一个用户。新用户登录时,为新用户设置reg ID并清除它适用于以前与此 ID 关联的任何其他用户。当然,这将是一个更昂贵的数据库操作,因为您必须在整个表中搜索该 reg ID。最好有一个注销操作(实际上,这仍然可以是隐式的 - 如果您的设备知道以前登录的用户,请在登录操作中将旧用户与新用户一起传递)。 听起来不错。是的,谢谢。 简单易懂的谢谢:) 当我“清除数据”时会发生什么,它仍然会生成相同的 regID 吗?

以上是关于2 个用户使用相同的设备和相同的应用程序但登录 ID 不同 - 他们是不是有不同的 gcm 注册 ID?的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道用户是不是以相同的 ID 登录了其他设备,我在我的应用程序中使用了 XMPP

Apache Flink - 匹配具有相同值的字段

QuickBlox:发送消息不会在具有相同登录名的其他设备上更新

在应用程序购买中创建ios应用程序时,我有一个查询

如何在具有相同苹果 ID 的多台设备的用户中找出“使用 Apple 登录”?

Firebase:相同的用户名