2016-07-18 8 views
5

firebaseのマニュアルとGoogleのアプリ起動時のすべてのデータの取得方法に関する情報を見つけるのに問題があります。Firebaseはアプリの起動時にすべてのデータを取得します

ここでは、イベントなしでアプリ起動時に以下のデータをすべて取得したいとします。 ArrayListに格納します。 ArrayList<Quote>と見積もりに3つのフィールド(int id、String text、String author)があるとします。

[{ 
    "id" : 1, 
    "text": "There are 1,411 tigers left in India.", 
    "author": "NULL" 
}, { 
    "id" : 2, 
    "text": "The Greek for \"left-handed\" also means \"better\".", 
    "author": "NULL" 
}] 

documentationによればOnDataChangeの()しかし、アプリケーションが任意のデータを変更しないと呼ばれる方法があります。どのように私はカスタムアダプターに渡すことができるArrayList<Quote>にすべてのデータとストアをつかむ。

+0

"Value Events"セクションを読む:onDataChange()[...]このメソッドは、リスナーがアタッチされると1回トリガされ、子を含むデータが変更されるたびにトリガされます。 –

答えて

2

Firebaseリアルタイムデータベースがアクティブなリスナーのためのデータのローカルコピーを同期させ、データを格納する新鮮な

を維持します。さらに、特定の場所を同期させることができます。

DatabaseReference scoresRef = FirebaseDatabase.getInstance().getReference("scores"); 
scoresRef.keepSynced(true); 
クライアントは、参照にアクティブなリスナーがない場合でも、これらの場所でデータを自動的にダウンロードして同期させます。次のコード行で同期をオフに戻すことができます。

詳細については、このドキュメントを参照してください。 https://firebase.google.com/docs/database/android/offline-capabilities

2

リスナー(ValueEventListenerまたはChildEventListener)が添付されている場合は、メソッドが直接呼び出されるため、そのメソッドをトリガするためにデータを変更する必要はありません。

リスナーがたびに再び子供を含むデータを、取り付けられているとき、ドキュメントFirebase - Retrieve Data on Android

から、この方法は、一度変更をトリガされます。

関連する問題