Я пытался извлечь информацию из базы данных Firebase Realtime в свое настольное Java-приложение, и меня смущает, как работает ChildeventListener
;
public void getInformation(){
DatabaseReference ref = FirebaseDatabase.getInstance()
.getReference().child("Users/Informatique/LFI1");
Query myq = ref.orderByChild("Presences");
myq.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildName) {
Map <String, String> map = new HashMap <String, String>();
map = (Map<String, String>) snapshot.child("Presences").getValue();
for(Map.Entry<String,String> entry : map.entrySet()){
System.out.println(entry.getValue());
list.add(entry.getValue());
}
}
});
System.out.println(list.size());
}
Значения, которые я получаю в выводе, - это то, что мне нужно, но размер списка, в конце концов, 0
, и его нельзя использовать где-либо еще, если вы проверите размер внутри метода onChildAdded, вы получите правильный.
0
< 12345678 Skander Maranissi LFI1 Wed May 02 15:52:03 GMT+01:00 2018 >
< 12345678 Mohsen Yajour LFI1 Wed May 02 15:09:32 GMT+01:00 2018 >
< 12345678 Lebron James LFI1 Wed May 02 16:51:35 GMT+01:00 2018 >
< 12345678 Lebron James LFI1 Sat May 05 12:54:02 GMT+01:00 2018 >
Как распечатывается размер списка, затем проходит по карте; это то, что не ясно в моей голове о том, как работают слушатели. Большое спасибо.