当用户使用正确的凭据登录时,SVProgressHUD会正确显示和解除,并且用户可以正确地切换到主主屏幕。但是,当密码或电子邮件不正确时,SVProgressHUD会无休止地显示,并且不会弹出警报。
@IBAction func signInButton(_ sender: Any) {
self.view.endEditing(true)
let email = emailText.text!.lowercased()
let finalEmail = email.trimmingCharacters(in: .whitespacesAndNewlines)
let password = passwordText.text!
if finalEmail.isEmpty || password.isEmpty {
let alertController = UIAlertController(title: "Error!", message: "Please fill in all the fields.", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Ok", style: .cancel, handler: nil))
present(alertController, animated: true, completion: nil)
}else {
SVProgressHUD.show()
Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
if error == nil {
if let user = user {
print("\(user.displayName!) has been signed in")
SVProgressHUD.dismiss()
// self.enter()
self.performSegue(withIdentifier: "signInHome", sender: nil)
}else{
SVProgressHUD.dismiss()
print("error")
let alertController = UIAlertController(title: "Low Blow!", message: "incorrect credentials", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Ok", style: .cancel, handler: nil))
self.present(alertController, animated: true, completion: nil)
print(error?.localizedDescription as Any)
}
}
}
}
}
答案 0 :(得分:1)
如果错误为null
,您会忘记忽略SVProgressHUD
结帐此代码
@IBAction func signInButton(_ sender: Any)
{
self.view.endEditing(true)
let email = emailText.text!.lowercased()
let finalEmail = email.trimmingCharacters(in: .whitespacesAndNewlines)
let password = passwordText.text!
if finalEmail.isEmpty || password.isEmpty
{
let alertController = UIAlertController(title: "Error!", message: "Please fill in all the fields.", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Ok", style: .cancel, handler: nil))
present(alertController, animated: true, completion: nil)
}
else
{
SVProgressHUD.show()
Auth.auth().signIn(withEmail: email, password: password)
{
(user, error) in
if error == nil
{
if let user = user
{
print("\(user.displayName!) has been signed in")
SVProgressHUD.dismiss()
self.performSegue(withIdentifier: "signInHome", sender: nil)
}
else
{
SVProgressHUD.dismiss()
print("error")
let alertController = UIAlertController(title: "Low Blow!", message: "incorrect credentials", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Ok", style: .cancel, handler: nil))
self.present(alertController, animated: true, completion: nil)
print(error?.localizedDescription as Any)
}
}
else
{
SVProgressHUD.dismiss()
}
}
}
}