2016-09-14 42 views
1

我想創建一個使用firebase作爲後端的應用程序。現在我遇到的問題是我必須附加一個偵聽器才能獲取數據快照。但是,每次我的應用程序啓動時,即使數據庫中沒有更改,我也想查詢Firebase的數據並填充我的視圖。如何從Firebase中檢索數據而無需聆聽更改?

+2

請分享您的代碼 –

+0

答案應該是在這裏:https://firebase.google.com/docs/database/android/retrieve-data#child-events –

回答

3

我想你正在做的事情是這樣的:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
ref.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      // Code 
     } 
     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      // Code 
     } 
    }); 

所以對我怎麼想你問,打電話叫addListenerForSingleValueEvent應該解決這個問題的替代方法。它會而不是監聽更改,只要返回一個值,它將停止連接,直到再次連接。


結果

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
    ref.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      // Code 
     } 
     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      // Code 
     } 
    }); 
+0

謝謝....我現在明白了....問題在於,重寫方法onDatachange的名稱是誤導性的,我認爲它僅在數據更改時才被調用 –