我有一个使用Firebase数据库的应用程序。我还具有连接到按钮的功能,以删除其Firebase帐户,但我需要发出某种警报来询问用户“您确定吗?”。
删除功能:
let user = Auth.auth().currentUser
let firebase = Database.database().reference()
// ... removes auth account
user?.delete(completion: { (error) in
if let error = error {
print(error.localizedDescription)
} else {
print("Auth Deleted")
}
})
// ... removes account from database
firebase.child("Users/Riders").child((user?.uid)!).removeValue { (error, ref) in
if error != nil {
print("error \(String(describing: error))")
} else {
print("Database acct deleted!")
}
}
self.logOutAction(self)
我现在需要创建一个警报,当用户按下Delete(删除)按钮时,会弹出一个警报,其中包含两个选项Yes(是)或No(否)。如果按下Yes(是),则会激活'Delete(删除)'功能,如果按下No(否),它将取消动作。
我知道如何创建警报,当用户按下“是”时我不知道如何实现“删除”功能
任何帮助将不胜感激。
运行此删除功能之前,您可以查看UIAlertController以完成此操作。您可以为实际调用删除功能的确认操作设置处理程序。确保从主线程运行它。
例如,您连接到删除按钮的功能可能看起来像这样:
let alert = UIAlertController(title: "Delete Account", message: "Are you sure you want to delete this account?", preferredStyle: .alert)
let deleteAction = UIAlertAction(title: "Delete", style: .destructive, handler: { (action) in
print("Call the deletion function here")
self.processDelete()
})
alert.addAction(deleteAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel)
alert.addAction(cancelAction)
self.present(alert, animated: true, completion: nil)
首先创建您的函数
@objc func Delete() {
let user = Auth.auth().currentUser
let firebase = Database.database().reference()
// ... removes auth account
user?.delete(completion: { (error) in
if let error = error {
print(error.localizedDescription)
} else {
print("Auth Deleted")
}
})
// ... removes account from database
firebase.child("Users/Riders").child((user?.uid)!).removeValue { (error, ref) in
if error != nil {
print("error \(String(describing: error))")
} else {
print("Database acct deleted!")
}
}
self.logOutAction(self)
}
然后在这样的警报中调用它
let alert = UIAlertController(title: "Are you sure?", message: "Are you sure you want to permanently delete your account?", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Yes", style: .default, handler: {(alert: UIAlertAction!) in self.Delete()}))
alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))
self.present(alert, animated: true)