Я перебираю данные от детей из базы данных Firebase Realtime Нажмите, чтобы просмотреть данные , но по какой-то причине порядок повторения циклов не является логичным для меня.
Это означает, что после проверки кода ниже в журнале должно отображаться:
[XRA, 32-LY-14, 2, 1, 32-LY-15, 3, 2,YRa, 33-LY-77, 4, 3]
, но он показывает:
[XRA, YRa, 32-LY-14, 2, 1, 32-LY-15, 3, 2, 33-LY-77, 4, 3]
Также, если я поставлю Log.d ("TAG", DrawingsList.toString ());после завершения циклов DataSnapshot Arraylist выглядит пустым, как будто к нему ничего не добавлено.
public void Drawings_71 () {
DrawingsList.clear();
FirebaseDatabase.getInstance().getReference().child("Drawings").child("Area 71").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
TAG = ds.getKey();
DrawingsList.add(TAG);
FirebaseDatabase.getInstance().getReference().child("Drawings").child("Area 71").child(TAG).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot2) {
for (DataSnapshot ds2 : dataSnapshot2.getChildren()) {
String TAG2 = ds2.getKey();
String Current_Version = ds2.child("Current Version").getValue().toString();
String Previous_Version = ds2.child("Previous Version").getValue().toString();
DrawingsList.add(TAG2);
DrawingsList.add(Current_Version);
DrawingsList.add(Previous_Version);
}
Log.d("TAG", DrawingsList.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}