Есть отдельный Controller, в котором 2 поля для ввода нового пароля (ввод и повтор ввода), реализован метод смены пароля через Firebase, в нем реализована проверка на ошибки: не совпадают пароли и короткий пароль меньше 6 символов (надпись ошибки появляется в приложении, активируя warningLable) . Все работает, и смена пароля и проверка ошибок. Но никак не могу понять куда вставить сворачивание экрана self.dismiss(animated: true, completion: nil), в какое бы место не ставил либо функции не все выполняются, либо не сворачивается экран. Поставил точки во всех возможных местах, перепробовал везде, но ничего путного не получается. Логично поставить на точку Point 5, но экран не уходит. Подскажите в чем может быть проблема, может вообще логика метода неправильная.
@IBAction func saveTapped(_ sender: UIButton) {
if newPasswordTextField.text == repeatNewPasswordTextField.text {
let newPassword = repeatNewPasswordTextField.text
Auth.auth().currentUser?.updatePassword(to: newPassword!) { error in
guard error == nil else {
print(error)
if let errorCode = AuthErrorCode(rawValue: error!._code) {
switch errorCode {
case .weakPassword:
self.displayWarningLabel(withText: "Короткий пароль. Минимум 6 знаков")
print("Point 1")
default:
print("There is an error")
print("Point 2")
}
print("Point 3")
}
print("Point 4")
print(error!.localizedDescription)
return
}
print("Point 5")
// self.dismiss(animated: true, completion: nil)
}
print("Point 6")
} else {
self.displayWarningLabel(withText: "Пароли не совпадают")
return
}
print("Point 7")
guard let user = self.user else { return }
guard let credential = self.credential else { return }
user.reauthenticate(with: credential) { error in
if let error = error {
print(error.localizedDescription)
// An error happened.
} else {
print("User re-authenticated")
}
}
}