I'm trying to write a method to fetch all of the current saved students in my firebase database. But I wasn't able to store these data on the global variable students. How to do that? I couldn't figure out how to fix this scope problem it with OOP's theory. Any brilliant idea, please?
    private static ArrayList<StudentModel> students = new ArrayList<StudentModel>();
    private Firebase mStudentsRef;
    public ArrayList<StudentModel> getAll() {
        mStudentsRef = new Firebase("https://firstapp.firebaseIO.com/students");
        mStudentsRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                StudentModel student;
                HashMap<String, String> studentDetails;
                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    studentDetails = new HashMap<String, String>();
                    student = new StudentModel();
                    for (DataSnapshot sds : ds.getChildren())
                        studentDetails.put(sds.getKey(), sds.getValue().toString());
                    student.set_id(ds.getKey());
                    student.setFirstname(studentDetails.get(dbHandler.STUDENT_FIRSTNAME));
                    student.setLastname(studentDetails.get(dbHandler.STUDENT_LASTNAME));
                    student.setUsername(studentDetails.get(dbHandler.STUDENT_USERNAME));
                    student.setPassword(studentDetails.get(dbHandler.STUDENT_PASSWORD));
                    students.add(student);
                }
            }
            @Override
            public void onCancelled(FirebaseError firebaseError) {
                Log.e("Student.getAll(): ", firebaseError.getMessage());
            }
        });
        return students;
    }
Thanks in advance!
 
    