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

Ios Swift4:从Firebase身份验证系统中删除用户帐户,ios,swift,firebase,Ios,Swift,Firebase,我希望能够通过uid以编程方式从Firebase中删除用户帐户,但我只能将其从数据库中删除 是否可以在swift4上获得类似的内容 Task<Void> task = FirebaseAuth.getInstance().deleteUser(uid) .addOnSuccessListener(aVoid -> System.out.println("Successfully deleted user.")) .addOnFailureListener(e -

我希望能够通过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()));
Task Task=FirebaseAuth.getInstance().deleteUser(uid)
.addOnSuccessListener(避免->系统.out.println(“已成功删除的用户”))
.addOnFailureListener(e->System.err.println(“错误更新用户:+e.getMessage()));

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

FirebaseUser user = firebaseAuth.getCurrentUser();
user.delete();
但如果用户最近没有通过身份验证,它可能会要求重新身份验证。

因此,根据

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

您可以按如下方式选择当前已签名的:

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}
admin.auth().deleteUser(uid)
  .then(function() {
    console.log("Successfully deleted user");
  })
  .catch(function(error) {
    console.log("Error deleting user:", error);
  });
如果要通过用户的UID删除用户,则需要使用

您可以像这样使用Firebase管理SDK:

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}
admin.auth().deleteUser(uid)
  .then(function() {
    console.log("Successfully deleted user");
  })
  .catch(function(error) {
    console.log("Error deleting user:", error);
  });
如果要按UID删除用户,我的建议是执行以下操作

  • 将要删除的用户的UID写入数据库的特定区域
  • 使用运行云函数,该函数使用上述代码删除与该UID关联的用户帐户

  • 谢谢Arnav,但我想让它在swift上工作。嗨,DoesData,我正在尝试,但由于安全问题,似乎不可能允许当前用户删除另一个用户帐户。是的,这正是我在回答中所说的。这就是为什么如果你想这样做,你必须使用管理SDK。你能在Swift上添加管理SDK吗?我还没有为它找到一个pod@doesdatat,它将是客户端API,所以它在Swift中不存在。您可以写入数据库以触发一个云函数,该函数可以使用AdminSDK删除任何用户。