Firebase登录错误消息未显示

时间:2018-01-28 05:49:08

标签: ios swift firebase uialertcontroller

当用户使用正确的凭据登录时,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)
                }
            }
        }
    }

}

1 个答案:

答案 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()
            }
        }
    }
}