skip to Main Content

I have the following code:

    public void signOn(String id, String password){
        usersReference.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                boolean valid = false;
                for(DataSnapshot singleSnapshot : dataSnapshot.getChildren()){
                    String key = singleSnapshot.getKey();
                    if (key.equals(id)) {
                        singleSnapshot.getValue()//THIS LINE THIS LINE
                        Intent myIntent = new Intent(WelcomePage.this, MainActivity.class);
                        myIntent.putExtra("key", key);
                        WelcomePage.this.startActivity(myIntent);
                    }
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

    }

When I call singleSnapshot.getValue(), I get {password=passwordExample, username=usernameExample} as those are the keys and their values in my Realtime Database. How can I access the password value and the username value?

2

Answers


  1. One way to get it as HashMap and extract value from it, like this.

    Map<String, String> map = (Map<String, String>) singleSnapshot.getValue();
    String username = (String) map.get("username"); // You should pass exact key names here.
    String password = (String) map.get("password");
    
    Login or Signup to reply.
  2. The DataSnapshot#getValue() returns an object of type Object. It’s true you can cast it to a Map<String, Object>, as GowthamKK mentioned in his answer but there is by far a simpler solution that would get the value according to the corresponding type. So in code, it would be as simple as:

    String password = singleSnapshot.child("password").getValue(String.class);
    

    As you can see I have used now, <T> getValue(@NonNull Class<T> valueType) which:

    This method is used to marshall the data contained in this snapshot into a class of your choosing.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search