如何验证Firebase上的用户名是否可用?

时间:2016-06-05 17:39:19

标签: swift firebase firebase-realtime-database firebase-authentication

在我的Swift应用程序中,当注册用户时,系统会提示用户选择用户名。然后,此用户名将存储在Firebase实时数据库中,如下所示:self.ref.child("users").child(user!.uid).setValue(["username": usernameResponse]),其中用户名响应是用户输入的值。这是注册方法的一部分:

  

FIRAuth.auth()?. createUserWithEmail(email,password:passwordUltimate){(user,error)in

     

// ...如果错误!= nil {

我想在设置其值之前验证用户名是否可用。是否有某种查询我可以用来检查没有重复项?

这是我的数据库,其中包含一些示例数据(qwerty12345是uid):

database

1 个答案:

答案 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)
        }
 }