Okay, so what I'm trying to do is collect a list of user_uid's from firebase then for each user_uid fetch an image url and combine it and return one Object. The problem I'm running into is returning the Object from the asynchronous call. I'm trying to implement rxjava to achieve this, but I'm still getting empty Objects. below I'll have code and database structure so you can see what I'm trying to achieve, thank you all in advanced for any help
this is the database structure:

Asynchronous call:
private Note createNoteWithArtists(Note note, ArrayList<String> user_uids) {
DatabaseReference db_users = db_root.child("Users");
ArrayList<User> artists = new ArrayList<>();
Note note = note;
for (String each_uid : user_uids) {
db_users.child(each_uid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String uid = dataSnapshot.getKey();
String image = dataSnapshot.child("image").getValue(String.class);
String username = dataSnapshot.child("username").getValue(String.class);
User user = new User(username, null, image, uid);
artists.add(user);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
note.setArtists(artists);
return Note;
}
attempting to use RxJava:
io.reactivex.Observable<Note> observable = io.reactivex.Observable.create(subscriber -> {
subscriber.onNext(createNoteWithArtists(note, artists));
subscriber.onComplete();
});
observable.subscribe(note -> loadNoteResults.NoteLoaded(note, true)).dispose();
It returns the note, but the nested artists object is still empty :/