我可以从控制台(firebase网页)成功禁用项目的用户帐户,但是应用程序中的用户如何在他想要的时候通过代码禁用您自己的用户帐户。另外,我在firebase的新文档中找不到帮助。
答案 0 :(得分:11)
回答这个问题有点老了。但是,只有那些寻找相同答案的人才能从我的答案中得到一个想法。
使用Admin SDK
Firebase管理员(node.js) - 不适用于移动平台 - 可以使用Admin SDK禁用/删除用户。要停用用户,请将禁用属性设置为 TRUE 。
注意:如果您的应用程序是,则无法使用Admin SDK 基于浏览器的应用程序。
使用实时数据库规则
另一个选项是通过在实时数据库中设置Users表来限制用户对数据库的访问(读/写)。您可以在该表中添加标记字段(活动),例如:
{
"users" : {
"3sFGw6zlr8VylNuvmCWd9xG1CQ43" : {
"active" : true,
"address" : "#123, City",
"createdBy" : "2016-12-20",
"mobile" : "xxxxxxx"
},
"posts" : {
}
}
在上面的例子中 - " 3sFGw6zlr8VylNuvmCWd9xG1CQ43"是firebase身份验证生成的uid。这是将此自定义用户表与firebase用户个人资料相关联的关键。使用正常的数据库写入操作,活动字段可以轻松设置 true 或 false 。
此标志字段将用于检查此帐户是否可以访问数据库记录。请参阅下面的示例:
{
"rules": {
".read": "auth !== null && root.child('users/' + auth.uid).child('active').val()==true",
".write": "auth !== null && root.child('users/' + auth.uid).child('active').val()==true",
}
}
此规则将检查用户是否已登录并且标记字段活动为true。否则,用户将无法读取或写入数据库。在用户登录页面上,您还可以检查登录用户的此标志字段,如果活动字段为false,则注销用户,以便该用户无法登录系统。
编辑:您可以使用云功能(Admin SDK)。有时候请尽量阅读有关云函数here的内容。 Firebase Cloud Functions是实时数据库非常有用的工具。
答案 1 :(得分:3)
来自firebase-support@google.com的回复:
感谢您与我们联系。对不起,花了这么长时间才回复你。 目前,没有明确的API来禁用用户的帐户。现有的解决方法是为用户实现“禁用”标志,允许您禁用/启用帐户。请注意,此标记将存储在Firebase数据库中并进行维护。您可以将此与安全规则结合使用,以便在禁用帐户后,只能将管理员的元数据写入用户帐户。