android - 在 Firebase for android 中,每个用户一次只能登录一次

标签 android firebase-authentication

我希望用户一次在一台设备上使用他们的凭据,避免使用相同的电子邮件和密码多次登录。我找到了 this来自 firebase 官方网站,但它与我正在尝试做的事情无关。

最佳答案

无法阻止用户在多个设备上进行身份验证。事实上:要知道同一用户在两台设备上,他们需要在两台设备上进行身份验证。

根据您使用的后端服务,可能只允许从一台设备访问资源。

例如,如果您的应用使用 Firebase 数据库,您可以在用户登录时将 InstanceID token 写入数据库。然后只有在没有 token 或 token 与最后一个 token 匹配时才允许写入如果用户在第二台设备上登录,您甚至可以警告他们,他们已经在从另一台设备访问系统,应该先从那里注销。

但这都是由问题案例造成的。

例如:您何时标记用户停止在一台设备上使用您的应用程序(即从数据库中删除 InstanceID token )?他们什么时候退出?这意味着他们每次想使用该应用程序时都必须登录,这是大多数用户不太喜欢的一种摩擦。

或者您会尝试自动检测他们是否停止使用该应用程序,例如什么时候进入后台?如果您因为错误、崩溃或网络故障而错过了那一刻,会发生什么?用户将无法通过其他设备使用该应用程序吗?

出于这些以及更多原因,我通常建议不要采用这种单一设备政策:它带来的麻烦多于它的值(value)。

另见:

关于android - 在 Firebase for android 中,每个用户一次只能登录一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48732295/

相关文章:

android - 如何切换画面?

google-cloud-platform - 404 错误 GCP API 网关多个云运行后端

javascript - Firebase 用户已登录

Firebase 身份验证 : Is it possible to be logged in on two devices at the same time?

c# - 如何在Unity中调用Firebase电子邮件登录任务中的函数?

javascript - Firebase Auth - 设置 session 过期

android - 在 Fragment 中哪里最好使用 setRequestedOrientation?

android - 如何在 GoogleMap 上添加按钮

android - Android Studio 4.0 Gradle构建尚未完成

java - 选择用于异步 http 文件上传的文件(uri 到文件路径)