android - 从 Firebase 控制台中删除 Firebase 用户时(用户登录后),它不会反射(reflect)在应用程序中

标签 android firebase firebase-authentication

user.uid 仍然存在(借助此 uid != null,我假设用户已登录)。

我也尝试了 addAuthStateListener(mAuthListener),但我仍然得到之前删除用户的 UID。

如果不使用被禁止或删除的用户 ID 的数据库跟踪,就可以立即删除该用户。

最佳答案

当用户登录 Firebase 时,他们会获得一个有效期为一小时的访问/ID token 。此 ID token 无法撤销,因为这需要 Firebase 对每次调用执行非常昂贵的检查。

因此,当您从控制台删除用户帐户时,他们可能会保留访问权限长达一小时,此时他们将需要刷新其 token ,这将失败(因为您删除了他们的帐户)。所以他们的访问权限会在一小时内自动消失。

几点:

  • 如果您想在用户的 ID token 过期之前将其锁定在应用之外,您需要在某处保留一份额外的禁用 UID 列表。例如,如果您使用的是 Firebase 数据库,则可以保留 bannedUIDs 的全局列表,并将 UID 添加到其中。然后在您的服务器端安全规则中,您可以检查尝试访问数据库的 UID 是否未被禁止。
  • 如果您删除用户的帐户,他们只需重新注册并创建一个新帐户即可。出于这个原因,通常最好禁用他们的帐户,这样做的效果相同(他们将无法在当前 ID token 过期后获得新的 ID token ),但会阻止他们使用相同的凭据再次注册。<

另见:

关于android - 从 Firebase 控制台中删除 Firebase 用户时(用户登录后),它不会反射(reflect)在应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54956709/

相关文章:

android - 在 Android 2.1 中方向更改期间保存 WebView 滚动位置时出现问题

android - 如何获得与设备旋转无关的磁场矢量?

javascript - 更新 firestore 文档中嵌套对象中的字段?

java - Firebase 将电子邮件链接到手机 : Cannot create PhoneAuthCredential without verificationProof

android - 实现 Google 应用内计费 - 哪个 Google 教程是正确的?

android - Crashlytics.log 和 Crashlytics.logException 未按预期工作

使用 onAuthStateChanged 使用 Flutter 登录 Firebase

firebase - 是否可以在 firebase 上运行 graphql 订阅?

ios - 将用户注册到 firebase 并登录(如果已注册)

java - 如何将数据从 firestore 添加到我的 spinner