Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase查询未执行OnChildaded_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android Firebase查询未执行OnChildaded

Android Firebase查询未执行OnChildaded,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,目前,我遇到一个Firebase查询问题,该查询没有执行onchildaded方法。因此,在使用dataSnapshot中包含的数据填充onchildaded方法内的sectoresMayorEspera和localizacionMayorEspera数组列表之后,我实现了一个回调来处理Firebase查询的异步性质,buscarEspera方法应以前面的ArrayList作为参数执行 当onchildaded方法被“忽略”并且buscarEspera方法被传递为空数组列表时,就会出现问题

目前,我遇到一个Firebase查询问题,该查询没有执行
onchildaded
方法。因此,在使用
dataSnapshot
中包含的数据填充
onchildaded
方法内的
sectoresMayorEspera
localizacionMayorEspera
数组列表之后,我实现了一个回调来处理Firebase查询的异步性质,
buscarEspera
方法应以前面的ArrayList作为参数执行

onchildaded
方法被“忽略”并且
buscarEspera
方法被传递为空数组列表时,就会出现问题

    public void busquedaEspera(final MiCallbackEspera miCallbackEspera) {

    if (cantidadBuses > 1) {
        Firebase sectoresMasTiempo = new Firebase("https://brilliant-heat-7882.firebaseio.com/SectoresDatos/").child(String.valueOf(sectorOrigenBus));
        sectoresMasTiempo.orderByChild("espera").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                sectoresMayorEspera.add(dataSnapshot.getKey());
                HashMap hashMap = (HashMap) dataSnapshot.getValue();
                HashMap localizacionHashMap = (HashMap) hashMap.get("localizacionEspera");
                localizacionMayorEspera.add(new LatLng((double) localizacionHashMap.get("latitude"), (double) localizacionHashMap.get("longitude")));
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });

        miCallbackEspera.buscarEspera(sectoresMayorEspera, localizacionMayorEspera);
    }

我对编码很陌生(显然对Android、Java和…)我非常感谢您的帮助

调用
miCallbackEspera.buscarEspera
后,将触发
onchildaded
方法。看看这个问题,我写了如何解决这个问题,或者最好是如何正确使用它。非常感谢,弗兰克,您指出的问题非常有用,除了一些其他重构之外,将回调方法放在OnChildaded方法中,以便在ArrayList更新时正确使用它们,从而使我免于溺水,您真的必须“接受”如果你假装成功使用Firebase的话,那就是Firebase的异步特性。你在服用红色药丸吗?令人惊叹的!