删除帐户前放置“确定吗”警报

问题描述 投票:0回答:2

我有一个使用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(否),它将取消动作。

我知道如何创建警报,当用户按下“是”时我不知道如何实现“删除”功能

任何帮助将不胜感激。

ios swift firebase-realtime-database
2个回答
1
投票

运行此删除功能之前,您可以查看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)

0
投票

首先创建您的函数

@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)
© www.soinside.com 2019 - 2024. All rights reserved.