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我該怎麼辦? –