我正在为我的应用使用Firebase,并想知道如何阻止某些用户。我在控制台的Auth选项卡上看到,有“删除”和“禁用”选项。这些怎么办?我无法找到相关文档。其中一个允许我阻止用户吗?
阻止用户的意思是".read": "auth != null"
规则阻止他访问数据库上的数据
答案 0 :(得分:12)
禁用功能包括阻止该用户进行身份验证。因此,如果他尝试进行身份验证,则会因错误代码INVALID_CREDENTIALS
而失败,并且他无法访问具有".read": "auth != null"
规则的数据。它的作用就像删除了,但管理员仍然有权重新激活用户帐户。
如果你想建立一个"被阻止的用户列表" 能够进行身份验证但访问权限受限,您可以将阻止的ID存储在firebase数据库的某个节点中,如/databaseRoot/blockedUsers
,然后使用security and rules
。< / p>
".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);