我在我的应用程序中使用Firebase Auth。我用onStart()
编写代码。
private fun checkLogged() {
if (Firebase.auth.currentUser != null) {
startActivity(Intent(this@LoginActivity, MainActivity::class.java))
finish()
} else {
auth.signOut()
}
}
但当我在控制台中禁用或删除此用户时,它仍处于登录状态。如何正确编辑代码?
1条答案
按热度按时间jk9hmnmh1#
当用户成功登录Firebase时,它会收到一个令牌,有效期约为一小时。如果您在Firebase控制台中禁用了用户,并不意味着访问也受到限制。不,用户仍然可以访问约一小时。在这段时间之后,需要刷新之前生成的令牌。但由于用户帐户被禁用,该操作将失败。被禁用的帐户无法获得新令牌。因此,用户仍然可以访问,直到访问权限被自动撤销。
如果要在令牌过期之前删除该访问权限,则应考虑保留一个“禁止的”UID的附加列表,并在以后对其进行维护。例如,可以在Firestore文档中保留一个bannedUID的全局数组,并将UID添加到该数组中。然后,在安全规则中,可以检查该特定UID是否被禁止。如果该UID存在于该数组中,则Firebase服务器将拒绝该操作,否则,它可以继续使用您的应用。