Android - 如何从多个设备检测同一用户?

Posted

技术标签:

【中文标题】Android - 如何从多个设备检测同一用户?【英文标题】:Android - How to detect same user from multiple devices? 【发布时间】:2016-11-30 12:02:35 【问题描述】:

我正在开发一个将用户创建的数据发送到服务器的应用程序。

当他在不同设备上使用该应用时,是否可以识别同一用户我的应用不必请求访问他的 Google 帐户、需要额外权限或要求他创建自定义登录凭据? (这很重要,因为我的应用需要为“匿名”用户工作。)

我的应用使用推送通知,对于任何给定的用户,我了解 FireBase 生成的令牌 ID 可能对于他的应用的每个设备安装都是相同的。因此,我正在考虑使用这些令牌 ID 来跨多个设备识别同一用户。但是,我不确定这种方法有多可靠 - 或者是否有更好的方法?

注意 - 我找到了 Best Practices for Unique Identifiers(特别是 Handling Multiple Installations 部分),但它没有帮助。

【问题讨论】:

Firebase 云消息传递实例 ID 令牌的作用与它的名字所暗示的完全一样:它标识应用程序的实例,因此在特定设备/配置文件上安装特定应用程序。它不以任何方式识别用户。如果要识别用户,则必须以某种方式对其进行身份验证,例如使用 Firebase 身份验证或使用他们在 android 中现有的活动配置文件。 【参考方案1】:

我们可以使用同一个帐户管理多个安装,

    使用 Firebase 生成设备令牌 在本地和服务器上存储令牌 在初始屏幕上始终检查存储在本地的令牌和存储在服务器上的令牌 如果显示差异,请用户仅保持一台设备处于活动状态以接收通知, 如果用户选择当前设备将该令牌存储到服务器。

【讨论】:

以上是关于Android - 如何从多个设备检测同一用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何在flutter中从其他android型号中检测华为设备型号?

如何检测另一个 Android 设备?

如何从同一图像中检测多个人脸?

即使在 Lollipop 之前,如何获取当前设备的用户列表?

跨多个安卓设备同步应用数据

如何在 iOS 和 Android 的给定时间检测用户是不是仅在一台设备上处于活动状态