Here's my code :
public ArrayList<Integer> getArray() {
final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference myReff =database.getReference("server").child("user");
myReff.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
boolean connected = dataSnapshot.getValue(Boolean.class);
if (connected){
Log.d("CONNECT","YES");
}
else {
Log.d("CONNECT","NO");
}
GenericTypeIndicator<ArrayList<Integer>> genericTypeIndicator = new GenericTypeIndicator<ArrayList<Integer>>() {};
array = dataSnapshot.getValue(genericTypeIndicator) ;
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return array;
}
Here's my database :
"server" : {
"user" : {
1 : 0,
2 : 0,
3 : 0
},
}
The purpose of this code is to retrieve an array in my database.
The problem is that OnDataChange is never called in this function
(I debug my code, put breakpoint in it but nothings happend. And CONNECT is not shown in Logcat).
I don't understand why because when a listener is added, ondatachange must be triggered at least once even if data has not changed.
Can you explain me why OnDataChange is not executed ?