您如何在 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);
我正在为我的应用程序使用 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);