2

我正在使用Firebase Auth制作一个应用程序,但当我删除或禁用一个帐户时,我需要手动进行signOut()(我通过用户重新加载来控制),如果我不这样做,用户可以继续上传数据。我如何在没有应用程序代码的情况下修复此问题?

Firebase规则

{“规则”:{“用户”:{“$uid”:{“.read”:“身份验证!=空&&auth.uid==$uid”,“.write”:“auth!=null&&auth.uid==$uid”}}}}

应用程序代码-我如何检测它

if(user!=null)user.reload().addOnCompleteListener(这是新的OnComplete Listener<Void>(){@覆盖public void onComplete(@NonNull Task<void>Task){if(!task.isSuccessful()){字符串exc=任务.getException().getMessage();Log.e(“FireBaseUser”,不包括在内);auth.signOut();}}});

1答案1

重置为默认值
8

当生成令牌时,它会获得一个到期时间戳。这实际上是说:“此令牌中的信息在……之前有效。”。删除用户不会使任何现有标记无效。

记住,从最新的Firebase身份验证SDK,令牌仅在一小时内有效。因此,最多一个小时后,令牌将过期,被删除的用户将无法刷新它。

如果这对您的应用程序来说还不够,您可以向应用程序添加逻辑,以标记数据库中已删除的用户(在只有管理员才能访问的部分中):

/删除的用户209103:正确37370493:正确

然后你可以在你的安全规则验证只有未删除的用户才能访问数据:

“.read”:“!root.child('deletedUsers').child(auth.uid).exists()”
0

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.