簡體   English   中英

執行segue時,firebase分析錯誤

[英]firebase analytics error when preforming segue

當我執行segue時,應用程序崩潰。 我檢查是否有任何sigbrt錯誤,但沒有。 我認為這是日志中的Firebase分析。 該錯誤來自日志:

以NSException類型的未捕獲異常終止。

編碼

@IBOutlet weak var email: UITextField! 
@IBOutlet weak var password: UITextField!
@IBOutlet weak var adduser: UIButton!
@IBOutlet weak var errormessege: UILabel!

var databaseref = FIRDatabase.database().reference()


override func viewDidLoad() {
    super.viewDidLoad()

    password.isSecureTextEntry = true
    adduser.isEnabled = false

}

@IBAction func didtapcancel(_ sender: Any) {
    dismiss(animated: true, completion: nil)
}






@IBAction func didtapadd(_ sender: Any) {
    adduser.isEnabled = false

   FIRAuth.auth()?.createUser(withEmail: email.text!, password: password.text!, completion: {(user,error) in

        if error != nil {

            if error!._code == 17999 {
                       self.errormessege.text =  "Invalid email address"   }
            else {

              self.errormessege.text =  error?.localizedDescription
            }
        }

        else
        {


           FIRAuth.auth()?.signIn(withEmail: self.email.text!, password: self.password.text!, completion: {(user,error) in

                if (error == nil) {


                    self.databaseref.child("users").child(user!.uid).child("email").setValue(self.email.text!)

                    self.performSegue(withIdentifier: "hi", sender: nil)



                }
                else {
                    self.errormessege.text =  error?.localizedDescription

                }
            })
        }


    }
    )


     }



@IBAction func didtextchange(_ sender: Any) {

        if((email.text?.characters.count)!>0){
        adduser.isEnabled = true}
    else{
        adduser.isEnabled = false}

}
    @IBAction func did4(_ sender: Any) {
    if((password.text?.characters.count)!>0){
        adduser.isEnabled = true}
    else{
        adduser.isEnabled = false}
}

沒有更多的代碼和整個場景,很難明確確定代碼與Firebase之間的情況。 盡管可以追蹤到此錯誤,但對您有很大幫助的一件事是驗證在每個步驟中從@IBOutlets中提取的數據。 這樣,您的程序就不會強行解開這些對象,也不會給您打開代碼帶來風險。

@IBOutlet weak var email: UITextField! 
@IBOutlet weak var password: UITextField!
@IBOutlet weak var adduser: UIButton!
@IBOutlet weak var errormessege: UILabel!

var databaseref = FIRDatabase.database().reference()

override func viewDidLoad() {
    super.viewDidLoad()
    password.isSecureTextEntry = true
    adduser.isEnabled = false
}

@IBAction func didtapcancel(_ sender: Any) {
    dismiss(animated: true, completion: nil)
}

@IBAction func didtapadd(_ sender: Any) {
    adduser.isEnabled = false

    guard let emailText = email.text,
       let passwordText = password.text else {
       // Handle error safely
       print("Error unrapping email text or password text")
       return
    }

    FIRAuth.auth()?.createUser(withEmail: emailText, password: passwordText, completion: { (user,error) in

        if error != nil {
            if error!._code == 17999 {
              self.errormessege.text =  "Invalid email address"   
            } else {
              self.errormessege.text =  error?.localizedDescription
            }
        } else {
            FIRAuth.auth()?.signIn(withEmail: emailText, password: passwordText, completion: { (user, error) in

                if (error == nil) {
                    guard let uid = user.uid else {
                        // handle error safely
                        print("Error with user uid")
                        return
                    }
     self.databaseref.child("users").child(uid).child("email").setValue(emailText)
                    self.performSegue(withIdentifier: "hi", sender: nil)
                }
                else {
                    self.errormessege.text =  error?.localizedDescription

                }
            })
        }
    })
}

@IBAction func didtextchange(_ sender: Any) {

    guard let emailText = email.text else {
        // Return error safely
        print("Error unrapping email text")
        return
    }

    if emailText.characters.count> 0 {
        adduser.isEnabled = true
    } else{
        adduser.isEnabled = false
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM