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