In this program, I'm setting the value of one array element(flag1[0]) to 1 , if the 'if' condition is satisfied.When I print it(inside the class) , it shows the value set as 1. But when I'm trying to access it outside the inner class it shows value as 0. How should I resolve it ? ( getCount() and setCount() are getters and setters, even they don't work!)
public boolean checkUser(final String user, String program) {
    database = FirebaseDatabase.getInstance();
    final DatabaseReference reference;
    reference = database.getReference("UserNames").child(program);
    final int[] flag1 = {0};
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot data : dataSnapshot.getChildren()) {
                String key = data.getKey();
                Log.println(Log.ERROR,"msg",key);
                if (data.getKey().equals(user))
                {
                    musername.setError("UserName already Exists1!");
                    flag1[0] = 1;
                    setCount(1);
                    Log.println(Log.ERROR,"msg", String.valueOf(flag1[0])+String.valueOf(getCount()));//Shows 1 here
                }
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
    Log.println(Log.ERROR,"mesg", String.valueOf(flag1[0])+String.valueOf(getCount()));//Shows 0 here
    if(getCount()==0)
        return true;
    return  false;
}
 
    