簡體   English   中英

為什么在檢查Firebase中是否存在用戶名時從textField中刪除文本時應用程序崩潰?

[英]Why does app crash when text is deleted from textField while checking if username exists in Firebase?

當用戶在注冊屏幕上輸入新的用戶名時,將對照Firebase Realtime數據庫檢查userNameTextField的文本,以確保該用戶名尚未被使用。 很棒!

如果您只是在輸入后刪除一兩個字母,就沒問題。 但是,如果您在開始輸入后刪除所有字母,則iOS模擬器會崩潰。 這是代碼:

@IBAction func userNameTextFieldEditingChanged(_ sender: Any) {
    Auth.auth().signInAnonymously { (user, error) in

        if let error = error
        {
            self.showMessage(messageToDisplay: error.localizedDescription)
            return
        }

        if user != nil {
            var databaseReference: DatabaseReference!
            databaseReference = Database.database().reference()
            Database.database().reference().child("allUsers").child(self.userNameTextField.text!).observeSingleEvent(of: .value, with: {(usernameSnap) in

                if usernameSnap.exists(){
                    self.userNameStatusLabel.text = "Username is already taken."
                    self.nextButton.isEnabled = false
                    self.nextButton.alpha = 0.25
                } else{
                    self.userNameStatusLabel.text = ""
                }

            })
        }   
    }
}

應用崩潰后,它會向我顯示Xcode中的AppDelegate並顯示以下消息:

“類AppDelegate:UIResponder,UIApplicationDelegate {”行之后的“線程1:信號SIGABRT”

在下面的調試區域中,消息顯示為

“ libc ++ abi.dylib:以類型為NSException(lldb)的未捕獲異常終止

知道為什么它崩潰了並且如何解決? 任何幫助表示贊賞!

看起來你越來越

必須為非空字符串,且不包含“。” '#''$''['或']'

這意味着在您的情況下,您將發送帶有Firebase的空字符串,這是不可能的。

暫無
暫無

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

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