[英]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.