我可以在控制台 (firebase网页) 成功禁用项目用户帐户,但是当应用程序用户想要禁用自己的用户帐户时,他该如何使用代码进行操作。同时,我在Firebase的新文档中没有找到相关帮助。
我可以在控制台 (firebase网页) 成功禁用项目用户帐户,但是当应用程序用户想要禁用自己的用户帐户时,他该如何使用代码进行操作。同时,我在Firebase的新文档中没有找到相关帮助。
回答问题有些过时了。但是为了帮助需要同样答案的人,他们可以从我的答案中获得一些想法。
使用Admin SDK
Firebase admin(node.js)-不适用于移动平台-可以使用Admin SDK来禁用/删除用户。 要禁用用户,请将disable属性设置为TRUE 。
注意:如果您的应用程序是基于浏览器的应用程序,则无法使用Admin SDK。
使用实时数据库规则
另一个选项是通过在实时数据库中设置用户表来限制用户访问(读/写)数据库。 您可以在该表中添加一个标志字段(active),例如:
{
"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",
}
}
该规则将检查用户是否已登录并且标记字段 active 的值为 true。否则,用户将无法读取或写入数据库。在用户登录页面上,您还可以检查已登录用户的此标记字段,并在 active 字段为 false 时注销用户,以便用户无法登录系统。
编辑:您可以使用 Cloud Functions(Admin SDK)在其中使用。尝试花点时间阅读有关 Cloud Functions 的信息,请单击此处。Firebase Cloud Functions 是实时数据库非常有用的工具。
来自firebase-support@google.com的回复:
感谢您联系我们。很抱歉让您等待这么久。 目前,没有明确的API可以禁用用户帐户。现有的解决方法是为用户实施“禁用”标志,该标志允许您禁用/启用帐户。请注意,此标志将存储在您的Firebase数据库中并进行维护。您可以与安全规则一起使用它,以便在禁用帐户后,只有管理员的元数据才能写入用户帐户。