I have section of code that updates a variable by the return of a Firebase query. Outside of this section, I reference that variable and print it.
However, it seems to be executing as a async operation and prints out the variable before it has any values put in so I keep getting null. Is there an on complete for addListenerForSingleValueEvent?
public Map<String, String> childKV;
public Map<String, Object> allChildren;
public getChild() {
    allChildren = new HashMap<>();
    DatabaseReference dbRef = fb.child("inventory");
    ValueEventListener listener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            for (DataSnapshot childSnap : snapshot.getChildren() {
                childKV = new HashMap<>();
                childKV.put(
                    childSnap.getKey(),childSnap.getValue()
                );
                allChildren.put(childSnap.getKey(), childKV);
            }
        }
        @Override
        ...
    };
    dbRef.orderByKey().addListenerForSingleValueEvent(listener);
    dbRef.removeEventListener(listener);
    printChildren(allChildren);
}
public void printChildren(Map<String,Object>) {...}
Edit:
Like Update value of variable from Firebase query? but for Java. Does this mean I have to use reflection?
 
    