首页 文章

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

提问于
浏览
0

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

FIRAuth.auth()?. createUserWithEmail(email,password:passwordUltimate){(user,error)in // ... if error!= nil {

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

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

database

1 回答

  • 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)
            }
     }
    

相关问题