如何在onDataChange异步任务Firebase中等待响应?

时间:2018-10-29 14:40:47

标签: android firebase firebase-realtime-database android-asynctask

我调用了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()”,但是这种情况没有发生。处理这种情况的正确方法是什么?

0 个答案:

没有答案