我在firebase auth中创建了用作Admin的用户。现在我想登录并使用管理员帐户通过使用FIRAuth用户UID删除其他帐户。如何在swift中实现?
答案 0 :(得分:2)
Firebase的客户端SDK只能删除当前经过身份验证的用户。它们不允许删除任何其他用户,也不允许删除由其UID标识的用户。
这意味着您无法实现管理功能,例如在Swift中删除任意用户。
相反,您必须use the Firebase Admin SDK to delete an arbitrary user或allow your iOS users to delete their own account。鉴于Admin SDK允许其用户执行的操作,它应该仅在受信任的环境中使用,例如您控制的服务器或Cloud Functions for Firebase。
答案 1 :(得分:0)
您可以像这样删除/删除用户:
注意:某些安全敏感操作(例如删除帐户,设置主电子邮件地址和更改密码)要求用户最近登录。
let credential: AuthCredential
user.reauthenticate(with:credential) { error in
if let error = error {
// An error happened.
showAlertWithErrorMessage(message: error.localizedDescription)
} else {
// User re-authenticated.
user.delete { error in
if let error = error {
// An error happened.
showAlertWithErrorMessage(message: error.localizedDescription)
} else {
// Account deleted.
Database.database().reference(fromURL: kFirebaseLink).child(kUser).child(userID).removeValue()
try! Auth.auth().signOut()
self.navigationController?.popToRootViewController(animated: true)
}
}
}
}
}else{
showAlertWithErrorMessage(message: "Try again later")
}
这样就可以在我的ios应用程序中实现删除用户功能。(从firebase身份验证和数据库双方删除用户)
100%正常工作并经过测试