kotlin Firebase身份验证(电子邮件和密码)如何检查现有用户

k97glaaz  于 2022-12-13  发布在  Kotlin
关注(0)|答案(1)|浏览(149)

我在我的应用程序中使用Firebase Auth。我用onStart()编写代码。

private fun checkLogged() {
    if (Firebase.auth.currentUser != null) {
        startActivity(Intent(this@LoginActivity, MainActivity::class.java))
        finish()
    } else {
        auth.signOut()
    }
}

但当我在控制台中禁用或删除此用户时,它仍处于登录状态。如何正确编辑代码?

jk9hmnmh

jk9hmnmh1#

当用户成功登录Firebase时,它会收到一个令牌,有效期约为一小时。如果您在Firebase控制台中禁用了用户,并不意味着访问也受到限制。不,用户仍然可以访问约一小时。在这段时间之后,需要刷新之前生成的令牌。但由于用户帐户被禁用,该操作将失败。被禁用的帐户无法获得新令牌。因此,用户仍然可以访问,直到访问权限被自动撤销。
如果要在令牌过期之前删除该访问权限,则应考虑保留一个“禁止的”UID的附加列表,并在以后对其进行维护。例如,可以在Firestore文档中保留一个bannedUID的全局数组,并将UID添加到该数组中。然后,在安全规则中,可以检查该特定UID是否被禁止。如果该UID存在于该数组中,则Firebase服务器将拒绝该操作,否则,它可以继续使用您的应用。

相关问题