我正在嘗試驗證用戶輸入的用戶名是否已被佔用。該代碼目前檢查電子郵件是否正在使用,並創建用戶,如果他們不存在。我怎樣才能使這個數據庫讀取,看看用戶名是否已被使用?如果用戶名已被佔用,請檢查Firebase數據庫
FIRAuth.auth()?.createUser(withEmail: email!, password: password!) { (user, error) in
if error?._code == (FIRAuthErrorCode.errorCodeInvalidEmail.rawValue)
{
var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()
ref.child("Users").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
if snapshot.hasChild(name!){
ref.child("users").child((user?.uid)!).setValue(["username": name])
print("true rooms exist")
} else {
self.displayMyAlertMessage(userMessage: "Username already in use. Please choose another.")
print("false room doesn't exist")
}
})
} else {
self.displayMyAlertMessage(userMessage: "Email already in use. Please see the login page.")
return
}
}
嗯,這不是「像寫」你的數據庫後端?你指的是'the'數據庫,哪一個?你有任何代碼寫入永久存儲? – Yohst
我正在使用firebase,因此數據庫已經存在。代碼存儲的代碼是ref.child的代碼。 – AlexGarlock
這已被問過「幾次」之前。請參閱[這些答案](http://stackoverflow.com/search?q=%5Bfirebase-database%5D%5Bios%5D+unique+username)或[來自加藤的原始答案](http://stackoverflow.com/問題/ 25294478/how-do-you-prevent-duplicate-user-properties-in-firebase)(對於JavaScript,但所有平臺的邏輯都是相同的)。 –