在我的Swift应用程序中,当注册用户时,系统会提示用户选择用户名。然后,此用户名将存储在Firebase实时数据库中,如下所示:self.ref.child("users").child(user!.uid).setValue(["username": usernameResponse])
,其中用户名响应是用户输入的值。这是注册方法的一部分:
FIRAuth.auth()?. createUserWithEmail(email,password:passwordUltimate){(user,error)in
// ...如果错误!= nil {
我想在设置其值之前验证用户名是否可用。是否有某种查询我可以用来检查没有重复项?
这是我的数据库,其中包含一些示例数据(qwerty12345是uid):
答案 0 :(得分:2)
@IBAction func enterUsername(){
let enteredUsername = usernameText!.text!
let namesRef = ref.childByAppendingPath("/usernames/\(enteredUsername)")
namesRef.observeSingleEventType(.Value, withBlock: {
snap in
if (snap.value is NSNull){
let userNameAndUUID = ["Username" : enteredUsername, "UUID" : self.appDelegate.UUID]
namesRef.setValue(userNameAndUUID)
print("first block")
}else {
print("second block")
//do some other stuff
}
})
}
可替换地:
let checkWaitingRef = Firebase(url:"https://test.firebaseio.com/users")
checkWaitingRef.queryOrderedByChild("username").queryEqualToValue("\(username!)")
.observeEventType(.Value, withBlock: { snapshot in
if ( snapshot.value is NSNull ) {
print("not found)")
} else {
print(snapshot.value)
}
}