suppose i am getting data from firebase as
    DatabaseReference mdb=FirebaseDatabase.getInstance().getReference("users/"+id);
        mdb.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String name=dataSnapshot.child("name").getValue();
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
//point b
its working perfectly.... if i try to print that string name using
@Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String name=dataSnapshot.child("name").getValue();
                System.out.println(name);
            }
it will print that string. but what if i want that string name outside the listener, like in first code where i have added a comment //point b
i tried defining string name globally. but it only prints the println which is inside onDatachange()... but it will print null at //point b...even if i defined the String name globally.
like
String name;
    DatabaseReference mdb=FirebaseDatabase.getInstance().getReference("users/"+id);
        mdb.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                name=dataSnapshot.child("name").getValue();
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
//point b
edit actually its a function returning a string value like
public String getData(String id)
{
String name;
        DatabaseReference mdb=FirebaseDatabase.getInstance().getReference("users/"+id);
            mdb.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    name=dataSnapshot.child("name").getValue();
                }
                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });
return name;
}
 
     
     
    