[如何在用户登录另一部电话时将其注销-Kotlin Firebase [关闭]

问题描述 投票:-1回答:2

我正在开发健身应用程序,基本上,我希望用户在登录另一台设备时退出其应用程序,以防止数据被破坏。 (我将所有信息保存在.txt文件中,直到他们单击“保存”,然后它将上传到Cloud Firestore。)

被激活后,我将其称为注销用户:this.mAuth?.signOut()

但是,我想不出一种快速完成此操作的方法。我应该只使用实时数据库侦听器吗?用户登录后,将随机字符串下载到他们的设备,然后下载到数据库。让侦听器查看它们是否匹配,如果不注销,则将它们注销(因为重新登录会重置随机字符串)。这项工作还是有更好,更有效的方法?

谢谢!

android firebase kotlin firebase-authentication
2个回答
2
投票

您将为此感到非常困难,因为您使用Firebase Auth登录状态来尝试控制对其数据的控制。这里将出现重大问题,其中最重要的一点是不能保证用户实际上会退出他们先前登录过的其中一个设备。如果设备丢失了怎么办?如果该应用已卸载怎么办?您将无法检测到这些情况,并且数据库将永远显示该用户仍在登录。

最好让用户自己决定是要继续在其他设备上离开的地方,还是只是放弃之前所做的任何事情。用户应具有控制权。

如果需要检测它们正在使用哪个设备,则生成一个随机字符串(UUID)并将其存储在本地就足够了。但是,您应该知道,如果用户只是选择删除本地存储或卸载应用程序,则可以删除它们。因此,您应该准备好使UUID突然变为非活动状态,恕不另行通知。

从您的问题尚不清楚这里的实际要求是什么,但是我强烈建议使用auth登录状态不是一个好方法。


0
投票

您可以通过执行以下操作来防止用户登录另一个应用程序:

添加字段loggedIn : false,如果用户登录,则将该字段更新为等于true

如果同一用户单击另一台设备上的登录按钮,则检查loggedIn的值。如果loggedIn等于true,则显示警报(例如:您已经有活动的会话),以防止用户登录。

© www.soinside.com 2019 - 2024. All rights reserved.