如何从代码中禁用firebase项目的用户帐户?

Fra*_*via 11 android firebase firebase-authentication

我可以从控制台(firebase网页)成功禁用项目的用户帐户,但是应用程序中的用户如何在他想要的时候通过代码禁用您自己的用户帐户.另外,我在firebase的新文档中找不到帮助.

Sit*_*thu 12

回答这个问题有点老了.但只是寻找相同答案的人才能从我的答案中得到一个想法.

使用Admin SDK

Firebase管理员(node.js) - 不适用于Mobile平台 - 可以使用Admin SDK执行禁用/删除用户的功能.要禁用用户,请将disable属性设置为TRUE.

注意:如果您的应用程序是基于浏览器的应用程序,则无法使用Admin SDK.

在此输入图像描述

使用实时数据库规则

另一种选择是通过在实时数据库中设置Users表来限制用户对数据库的访问(读/写).您可以在该表中添加标志字段(活动),例如:

{
  "users" : {
    "3sFGw6zlr8VylNuvmCWd9xG1CQ43" : {
      "active" : true,
      "address" : "#123, City",
      "createdBy" : "2016-12-20",
      "mobile" : "xxxxxxx"
    },
    "posts" : {
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中 - "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",
  }
} 
Run Code Online (Sandbox Code Playgroud)

此规则将检查用户是否已登录并具有标志字段活跃真实.否则,用户将无法读取或写入数据库.在用户登录页面上,您还可以检查登录用户的此标志字段,如果活动字段为false,则注销用户,以便该用户无法登录系统.

编辑:您可以使用云功能(Admin SDK).尽量有时候在这里阅读有关云功能的信息.Firebase Cloud Functions是实时数据库非常有用的工具.


Fra*_*via 5

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

感谢您伸出援手。抱歉这么久才回复您。目前,没有明确的 API 可以禁用用户的帐户。现有的解决方法是为用户实施“禁用”标志,允许您禁用/启用帐户。请注意,此标志将存储并维护在您的 Firebase 数据库中。您可以将其与安全规则结合使用,以便在禁用帐户后,只有来自管理员的元数据才能写入用户帐户。