我调用了onDataChange方法,我需要这些数据完全返回才能遵循代码流...
private void eventoDatabase() {
interesseList = Util.getUser().getCategorias();
List<String> listaUID = new ArrayList<String>();
for ( String key : Util.getUser().getListGroups().keySet() ) {
listaUID.add(key);
}
mDatabaseReference.child("group").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnap) {
for (DataSnapshot snap : dataSnap.getChildren()){
Group group = snap.getValue(Group.class);
mDatabaseReference.child("group").child(group.getUid()).child("categoria").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Interesse interesse = dataSnapshot.getValue(Interesse.class);
if(interesse!=null) {
int i = 0;
for (i=0; i < Util.getUser().getCategorias().size(); i++) {
if (!listaUID.contains(group.getUid()) && interesse.getCategoria().equals(Util.getUser().getCategorias().get(i).getCategoria())) {
groupList.add(group);
}
}
filtrar();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(DatabaseError error) {
}
});
仅在正确填充“ groupList”之后才需要调用方法“ filtrar()”,但是这种情况没有发生。处理这种情况的正确方法是什么?