0

セグを実行するとアプリがクラッシュします。私はsigbrtエラーがあったかどうかを調べたが、なかった。私はそれがログからのfirebase分析だと思う。このエラーは、ログからのものです。セグを実行するとfirebase解析エラーが発生する

NSExceptionタイプのキャッチされない例外で終了しています。

より多くのコードと、特にあなたのコードとFirebaseの間で何が起こっているかを見極めるのは難しいです、私の目の前に全体のシナリオがなければ、コード

@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} 
} 
+0

あなたはFirebase解析(追加-FIRAnalyticsDebugEnabledあなたのアプリケーションに編集スキームの下で)でデバッグモードを有効にすると、アプリがクラッシュする前に、デバッグログの一部を提供することができますか?あなたの情報は限られているため、Firebase Analyticsか他のものかを判断するのは難しいです。 – adbitx

答えて

0

。このエラーを追跡するのに役立つことの1つは、あなたが進めているステップの各ステップを@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 
    } 
} 
関連する問題