删除firebase中的User不会触发onAuth方法

use*_*835 2 firebase firebase-authentication

通过Login&Auth firebase Web界面的Registered Users部分删除用户时,不会触发onAuth方法,并且用户仍然登录并能够写入数据库.如何确保用户的会话被销毁然后用户被删除?

Dav*_*ast 7

安全规则.

删除用户时,他们不会立即未经身份验证.但是,您可以以保护不再存在的用户的私有数据的方式编写安全规则.

以下面的数据为例.

{
  "privateData": "only authenticated and existing users can read me!,
    "users": {
      "user1": "Alice",
      "user2": "Bob"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们只希望/users列表中的用户可以访问该/privateData位置.一个简单的auth != null工作,直到删除其中一个用户.

{
   "rules": {
     "privateData": {
        ".read": "auth != null && auth.uid == root.child('users').child(auth.uid).exists()",
        ".write": "auth != null && auth.uid == root.child('users').child(auth.uid).exists()"
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

上述规则不仅检查经过身份验证的用户,还检查用户是否存在于该/users位置.

令牌将过期,他们将无法再登录.但是,通过强大的安全规则,您可以保证他们不再能够访问任何数据.

  • @DavidEast,您应该删除“auth.uid ==”。条件应该是“auth != null && root.*blah*.exists()”... (3认同)