У меня есть кнопка, где текущий пользователь может обновить свою электронную почту и имя пользователя.
Моя текущая функция
func updateDetails(withEmail email: String, andDisplayName
displayName: String, updateComplete: @escaping(_ error: Error?) -> ()) {
let currentUser = Auth.auth().currentUser
currentUser?.updateEmail(to: email, completion: { (error) in
if let error = error {
self.createError(title: "Error updating email", message: "\(error.localizedDescription)")
} else {
let ref = Database.database().reference().child("Users").child((self.user?.uid)!).child("email")
ref.setValue(Auth.auth().currentUser?.email)
}
})
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = displayName
changeRequest?.commitChanges { (error) in
if error != nil {
self.createError(title: "Error updating display name", message: "\(String(describing: error?.localizedDescription))")
} else {
let ref = Database.database().reference().child("Users").child((self.user?.uid)!).child("name")
ref.setValue(Auth.auth().currentUser?.displayName)
self.welcomeLabel.text = "Hi, \(self.currentUserNameTextField.text ?? "")"
}
}
}
Затем я вызываю эту функцию при нажатии кнопки
@IBAction func saveChangesButtonPressed(_ sender: Any) {
if emailTextField.text == nil || currentUserNameTextField.text == nil {
createError(title: "Error", message: "Email and name fields must not be blank")
} else {
updateDetails(withEmail: emailTextField.text!, andDisplayName: currentUserNameTextField.text!) { (error) in
if error == nil {
self.createError(title: "Success", message: "")
} else {
self.createError(title: "Error", message: "\(error!.localizedDescription)")
}
}
}
}
Подробности обновляются в аутентификации и базе данных, однако этот бит кода никогда не запускается
if error == nil {
self.createError(title: "Success", message: "")
} else {
self.createError(title: "Error", message: "\(error!.localizedDescription)")
}
Кто-нибудь знает, почему это не называется?
Спасибо