Android 当从Firebase控制台删除Firebase用户时(用户登录后),它不会反映在应用程序中

Android 当从Firebase控制台删除Firebase用户时(用户登录后),它不会反映在应用程序中,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,user.uid仍在运行(在这个uid!=null的帮助下,我假设用户已登录) 我还尝试了addAuthStateListener(mAuthListener),但我仍然获得了以前删除的用户的UID 如果不使用数据库跟踪被禁止或删除的用户ID,则可以立即删除该用户。当用户登录Firebase时,他们会获得一个有效期为一小时的访问/ID令牌。无法撤销此ID令牌,因为这需要Firebase对每个调用执行非常昂贵的检查 因此,当您从控制台删除用户的帐户时,他们可能会保留长达一小时的访问权限,此时他们将

user.uid
仍在运行(在这个
uid!=null
的帮助下,我假设用户已登录)

我还尝试了
addAuthStateListener(mAuthListener)
,但我仍然获得了以前删除的用户的UID


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

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

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

有几点:

  • 如果您想在用户的ID令牌过期之前将其锁定在应用程序之外,那么您需要在某个地方保留一个额外的禁用UID列表。例如,如果您使用的是Firebase数据库,则可以保留一个
    bannduids
    的全局列表,并将UID添加到该列表中。然后在服务器端安全规则中,可以检查试图访问数据库的UID是否被禁止
  • 如果您删除用户的帐户,他们只需再次注册并创建一个新帐户。出于这个原因,通常最好禁用他们的帐户,这会实现相同的功能(在当前ID令牌过期后,他们将无法获得新的ID令牌),但会阻止他们使用相同的凭据再次注册
另见:

  • 录像带

你所说的“user.uid仍在出现”是什么意思?“未来”在哪里/如何?你能给我们看看这个问题的相关代码吗?答案是bro@camden_kid。如果我从控制台删除用户,id令牌将在一小时内处于活动状态