Вот моя функция:
private void getOrderID() {
for (int i = 0; i < userID.size(); i++) {
databaseReference.child(opearatorID).child(userID.get(i)).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
keyStatusRelation.put(childSnapshot.getKey(),childSnapshot.getValue(Order.class).getStatus());
}
loadData();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
Эта функция получает ошибку, потому что данные не загружаются в базу данных
public static void loadData() {
for (int i=0;i<userID.size();i++){
statusRefrenceLiving.child(userID.get(i)).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
Order order = childSnapshot.getValue(Order.class);
if(keyStatusRelation.get(childSnapshot.getKey()).equals("0")||keyStatusRelation.get(childSnapshot.getKey()).equals("2")){
bookingmList.add(order);
bookingrecyclerView.setAdapter(bookingAdapter);
}
if(keyStatusRelation.get(childSnapshot.getKey()).equals("1")){
bookedmList.add(order);
bookedrecycleView.setAdapter(bookedAdapter);
}
if(keyStatusRelation.get(childSnapshot.getKey()).equals("3")){
LivingmList.add(order);
LivingrecycleView.setAdapter(livingAdapter);
}
}
}
@Override
public void onCancelled (@NonNull DatabaseError databaseError){
}
});
}
}
Вот logcat
Процесс: com..teepe.teepestaysmasterapp.MainActivity $ 4.onDataChange (MainActivity.java:187) на com.google.firebase.database.core.ValueEventRegistration.fireEvent (com.google.firebase: firebase-database @@ 17.0.0: 75) на com.google.firebase.database.core.view.DataEvent.fire (com.google.firebase: firebase-database @@ 17.0.0: 63) на com.google.firebase.database.core.view.EventRaiser $ 1.run (com.google.firebase: firebase-database @@ 17.0.0: 55) на android.os.Handler.handleCallback (Handler.java:751) на android.os.Handler.dispatchMessage (Handler.java:95) на android.os.Looper.loop (Looper.java:154) в android.app.ActivityThread.main (ActivityThread.java:6077) at java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 756)
Он зацикливается и идет только на вторую строку и не входит в onDataChange, кто-нибудь может сказать мне, в чем проблема?