Here is my function:
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) {
}
});
}
}
This fuction gets an error because data is not loaded in firebase
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){
}
});
}
}
Here is logcat
Process: com.teepe.teepestaysmasterapp, PID: 6867 java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.Map.get(java.lang.Object)' on a null object reference at com.teepe.teepestaysmasterapp.MainActivity$4.onDataChange(MainActivity.java:187) at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@17.0.0:75) at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@17.0.0:63) at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@17.0.0:55) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
It's looping and going only to the second line and not entering onDataChange , can any one tell me what is the problem?