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

And*_*lva 1 ios firebase swift

我希望能够通过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()));
Run Code Online (Sandbox Code Playgroud)

Doe*_*ata 5

所以根据这个答案

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

您可以像这样删除当前已签名的用户

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}
Run Code Online (Sandbox Code Playgroud)

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

您可以使用Firebase Admin SDK 删除用户,如下所示:

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

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

  1. 将要删除的用户的UID写入数据库的特定区域。
  2. 使用实时数据库触发器运行云功能,该功能使用上面的代码删除与该UID关联的用户帐户。


Arn*_*Rao 1

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

FirebaseUser user = firebaseAuth.getCurrentUser();
user.delete();
Run Code Online (Sandbox Code Playgroud)

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