我在Android應用程序中使用Firebase ValueEventlistener從數據庫中檢索一些數據以初始化我的用戶界面,但我的問題是,我永遠不知道數據提取何時完成,取決於用戶的Internet連接速度,我爲Listeners完成獲取數據的延遲時間爲5秒,但有時這還不夠,並且數據仍然爲空,從而產生空指針異常。我想知道Firebase偵聽器何時完成抓取數據以更新我的用戶界面。如何檢測Firebase偵聽器是否完成了抓取數據?
這是一個方法,我取數據:
public void GetRequests(){
Retrieve.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> Games = dataSnapshot.getChildren();
for(com.google.firebase.database.DataSnapshot game : Games){
String Game_Key = game.child("GameKey").getValue(String.class);
String Game_Location = game.child("Location").getValue(String.class);
String UserID_Sender = game.child("UserID").getValue(String.class);
Adapter_Game_Key.add(Game_Key);
Adapter_UserID_Sender.add(UserID_Sender);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
在這裏,我試圖讓從火力地堡聽衆的數據一個ArrayList能夠通過傳遞的ArrayList到的一個適配器來初始化UI列表顯示。
任何人都有這方面的解決方案嗎?
Firebase偵聽器同步數據,因此他們嚴格來說從未完成。另一方面:每次'onDataChange'觸發時,您都會從數據庫中獲取一組完整的數據 - 因此您可以將每個數據都視爲「已完成」。如果您分享[重現您卡住的最小代碼](http://stackoverflow.com/help/mcve),則可能更容易幫助您。 –
@FrankvanPuffelen我編輯了代碼並添加了代碼片段,請看看 –