Khôi V Nguyễn Khôi V Nguyễn - 1 year ago 176
iOS Question

Check if username already exist's : Swift, Firebase

I'm trying to check if a username exists or not. When I call

, snapshot value is always available but it will print down the whole database of mine, not just the data which I request
. When I call
, it always return null. I've tried many ways to figure it out.

This is my code:

DataService.instance.UsersRef.queryOrdered(byChild:"Nickname").queryEqual(toValue: "kai1004pro").observe(.value, with: { (snapshot) in

if (snapshot.value is NSNull) {
print("not found")
} else {


This is my json tree:

g50X0FvEsSO4L457v7NzS3dAABl1 = {
"User Profile" = {
Birthday = "Sep 20, 1992";
Gender = Female;
Nickname = kai1004pro;
UserUID = g50X0FvEsSO4L457v7NzS3dAABl1;
emailAddress = "poqksbs@gmail.con";
isFollow = 0;
isFriend = 0;

This is the security rules :

"rules": {
".read": true,
".write": "auth != null",
"Users": {
".read": true,
".write": "auth != null",
".indexOn": ["Nickname", "User Profile"]

Answer Source

Modify your JSON tree to include a separate node active_usernames, in that add username of every user whenever you create new user, modify whenever your user modify its username...

active_usernames :{
    uid1username : "true",
    uid2username : "true",
    uid3username : "true",
    uid4username : "true"

To check your if username already exists:-

//Checking username existence
FIRDatabase.database().reference().child("active_usernames").child(self.enteredUsername.text!).observeSingleEvent(of: .value, with: {(usernameSnap) in

        if usernameSnap.exists(){
        //This username already exists


        //Yippee!.. This can be my username


Also change your security rules to be readable (ONLY READABLE) to all, by manipulating the security rules.

{rules :{

   active_usernames : {

      ".read" : "true",
      ".write" : "auth != null"


PS:- enteredUsername is the textField in which you enter your username.

Suggestion:- keep the checking code inside didChangeEditing event of the textField(For better user experience.!)

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download