您如何在 Firebase 上阻止用户?

How do you block users on Firebase?

我正在为我的应用程序使用 Firebase,并且想知道如何阻止某些用户。我在控制台的 Auth 选项卡上看到,有 "delete" 和 "disable" 选项。那些做什么?我一直无法找到相关文档。其中之一会允许我阻止用户吗?

我所说的阻止用户的意思是 ".read": "auth != null" 规则阻止他访问数据库中的数据

禁用 功能在于阻止该用户进行身份验证。因此,如果他尝试进行身份验证,他将失败并返回错误代码 INVALID_CREDENTIALS,并且他将无法访问具有 ".read": "auth != null" 规则的数据。就像他被删除一样,但管理员仍然有权重新激活用户帐户。

如果您想构建一个 "blocked users" 的列表,该列表将 能够进行身份验证但访问受限 ,您可以将被阻止的 ID 存储在一个节点中你的 firebase 数据库喜欢 /databaseRoot/blockedUsers 然后使用 security and rules.

".read": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)"

blockedUsers 可能看起来像下面的树,但您还可以在 userId 下添加一些其他信息,例如该用户被阻止的日期。

/databaseRoot
    /blockedUsers
       userId1 : true
       userId2 : true

将用户添加到此列表将取决于您的需要。您可以通过访问 firebase 控制台并将用户 ID 添加到节点来手动执行此操作。或者,如果您想根据应用程序上的事件阻止用户,您可以简单地调用

ref.child('blockedUsers').child(userIdToBlock).set(true);