0
我正在使用此方法检索Android上的数据,并且它始终返回null。在ondatachange
内listFinalBus
不为空,但当返回时,我得到一个空值。Firebase检索数据始终为空
这里是我的代码:
public List<Bus> findAllBus() {
// Read from the database
myRef.child("Bus").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d(TAG, "onDataChange: " + dataSnapshot.toString());
for (DataSnapshot userDataSnapshot : dataSnapshot.getChildren()) {
Bus bus = userDataSnapshot.getValue(Bus.class);
Log.d(TAG, "onDataChange: after get value " + bus.getId().toString()+" nom "+bus.getNom().toString());
listFinalBus.add(bus);
Log.d(TAG, "onDataChange: list before return not null her" + listFinalBus.size());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Log.d(TAG, "onDataChange: list firas return" + listFinalBus.size());
//return is null
return listFinalBus;
}
回调不能这样工作。你的听众在你回来之后被调用。像这样的情景:将监听器添加到databaseReference - >您返回空值 - >您的监听器被调用。 –
那我该怎么办plz –
@PhoenixWang PLZ我该怎么办? –