如何通过代码禁用Firebase项目的用户账户?

15

我可以在控制台 (firebase网页) 成功禁用项目用户帐户,但是当应用程序用户想要禁用自己的用户帐户时,他该如何使用代码进行操作。同时,我在Firebase的新文档中没有找到相关帮助。

2个回答

17

回答问题有些过时了。但是为了帮助需要同样答案的人,他们可以从我的答案中获得一些想法。

使用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用户配置文件连接的关键。使用普通数据库写操作很容易将活动字段设置为truefalse
这个标志字段将用于检查此帐户是否可以访问数据库记录。以下是一个示例:
{
  "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 是实时数据库非常有用的工具。


5

来自firebase-support@google.com的回复:

感谢您联系我们。很抱歉让您等待这么久。 目前,没有明确的API可以禁用用户帐户。现有的解决方法是为用户实施“禁用”标志,该标志允许您禁用/启用帐户。请注意,此标志将存储在您的Firebase数据库中并进行维护。您可以与安全规则一起使用它,以便在禁用帐户后,只有管理员的元数据才能写入用户帐户。


是否可以注册一个新用户,并在初始注册时将其“禁用”,然后在发送确认用户电子邮件并点击链接后,用户变为“活动”状态? - Famic Tech
1
@FamicTech,您可以利用电子邮件验证标志来实现此目的。emailVerified是您需要查找的标志。 - teenu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接