我有一個應用程序,在用戶使用Firebase身份驗證後,它會將數據存儲在Firebase數據庫中。在存儲數據之前,我想檢查用戶給出的用戶名是否已經存在於數據庫中。所以如果它不存在,我可以給用戶這個唯一的用戶名(就像每個用戶都有一個唯一的用戶名一樣)。所以我有一個textField
用戶輸入他的用戶名,然後按下一步。然後,應用程序應該檢查用戶名是否存在,並告訴用戶是否需要更改它。檢查用戶是否存在Firebase 3.0 + swift
因此,代碼我用來檢查用戶名存在:
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("Users").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
if snapshot.hasChild(self.usernameTextField.text!){
print("user exist")
}else{
print("user doesn't exist")
}
})
所以每下一個按下按鈕時,該代碼就會被調用。問題在於結果始終與第一次搜索保持一致(即使在textField值更改後)。 例如,如果我搜索何塞,何塞和我的數據庫存在,所以打印「用戶存在」。但是當我將textField
更改爲不存在的名稱時,它仍顯示「用戶存在」。
很高興聽到您發現錯誤。在允許用戶聲明一個唯一的用戶名時,還需要考慮一下這個問題:http://stackoverflow.com/questions/25294478/how-do-you-prevent-duplicate-user-properties-in-firebase –