Swift4:从Firebase身份验证系统中删除用户帐户

时间:2018-03-30 14:04:23

标签: ios swift firebase

我希望能够通过uid以编程方式从Firebase中删除用户帐户,但我只能将其从数据库中删除。

可以在 swift4 上获得类似的内容吗?:

Task<Void> task = FirebaseAuth.getInstance().deleteUser(uid)
    .addOnSuccessListener(aVoid -> System.out.println("Successfully deleted user."))
    .addOnFailureListener(e -> System.err.println("Error updating user: " + e.getMessage()));

2 个答案:

答案 0 :(得分:4)

所以根据this answer

  

Firebase的客户端SDK只能删除当前经过身份验证的用户。它们不允许删除任何其他用户,也不允许删除由其UID标识的用户。

您当前可以delete a user签名:

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}

如果您想通过UID删除用户,则需要使用Firebase Admin SDK

您可以delete a user使用Firebase Admin SDK,如下所示:

admin.auth().deleteUser(uid)
  .then(function() {
    console.log("Successfully deleted user");
  })
  .catch(function(error) {
    console.log("Error deleting user:", error);
  });

如果您想通过UID删除用户,我的建议是执行以下操作。

  1. 将要删除的用户的UID写入数据库的特定区域。
  2. 使用real-time database trigger运行使用上述代码的云功能,以删除与该UID相关联的用户帐户。

答案 1 :(得分:-1)

只需在FirebaseUser对象上调用delete即可从firebase身份验证数据库中删除用户。

FirebaseUser user = firebaseAuth.getCurrentUser();
user.delete();

但如果用户最近未经过身份验证,则可能会要求重新进行身份验证。