-3

I have an android application that uses Firebase database. Firebase database structure looks like

What i want I have input field as a username. When a user enters his username, I want to check whether this user exists or not. If yes, then allow him to login in.

[As u can see username:][2]

I want to get this username. I have tried some code, but it's not getting what I want.

here is code sample:

mUserRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot child: dataSnapshot.getChildren())
            {
                UserData userData = child.getValue(UserData.class);
                if(c_user_name == null)
                {
                    c_user_name= " ";
                }
                online_user_id=c_user_name+userData.getmUser_name();
                c_user_name=online_user_id.toString();
                Log.v("E_VALUE","User_new:"+c_user_name);

            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

what error i am getting is Can't convert object of type java.lang.String to type packagename.UserData

and here is my UserData class

public class UserData {
    String mUser_name,mUser_email;

    public UserData() {
    }

    public UserData(String mUser_name, String mUser_email) {
        this.mUser_name = mUser_name;
        this.mUser_email = mUser_email;
    }

    public String getmUser_name() {
        return mUser_name;
    }

    public String getmUser_email() {
        return mUser_email;
    }
}
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
  • 2
    "Questions seeking debugging help ('why isn't this code working?') must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. Questions without a clear problem statement are not useful to other readers. See: [How to create a Minimal, Complete, and Verifiable example.](http://stackoverflow.com/help/mcve)" – Frank van Puffelen May 18 '18 at 17:11
  • please check again .. i have added code – RiZwAn SiDdiQuE May 19 '18 at 10:14
  • Possible duplicate of [Checking if a particular value exists in the firebase database](https://stackoverflow.com/questions/47893328/checking-if-a-particular-value-exists-in-the-firebase-database) – Alex Mamo May 19 '18 at 11:21

1 Answers1

1

This can be achieved by using orderByChild, and use addListenerForSingleValueEvent , since you want to read it only once.

Check below code:

mUserRef.orderByChild("User_Name").equalTo("usernameInputFieldText").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

      if(dataSnapshot.exists)
       {
          /// username exsits
       }
      else
     {
        /// user name doesn't exists
       }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});
alka aswal
  • 511
  • 1
  • 7
  • 22