ホームページ >Java >&#&チュートリアル >FirebaseUI と addSnapshotListener を使用して RecyclerView アダプターのドキュメント参照にアクセスして更新する方法
addSnapshotListener を使用した RecyclerView アダプターのドキュメント参照へのアクセス
FirebaseUI-Android は、RecyclerView でリアルタイム データを効率的に表示するための FirebaseRecyclerAdapter を提供します。ただし、データ オブジェクト内のドキュメント参照を処理する場合、データを取得するために addSnapshotListener を使用する必要が生じる場合があります。
RecyclerView ViewHolder にドキュメント参照を設定するには:
EventListener を作成します:
<code class="java">EventListener<DocumentSnapshot> eventListener = new EventListener<DocumentSnapshot>() { @Override public void onEvent(DocumentSnapshot snapshot, FirebaseFirestoreException e) { if (snapshot != null && snapshot.exists()) { // Retrieve and display the data from the document } } };</code>
populateViewHolder 内のドキュメント参照にリスナーを追加します:
<code class="java">if (listenerRegistration == null) { listenerRegistration = docRef.addSnapshotListener(eventListener); }</code>
リスナーの削除
メモリ リークや過度のネットワーク使用を避けるため、リスナーが不要になったら削除します。
<code class="java">@Override protected void onStop() { if (listenerRegistration != null) { listenerRegistration.remove(); } }</code>
ライフサイクル管理
適切なライフサイクル管理を確保するために、onStart() でリスナーを追加し、onStop() で削除することを忘れないでください。
代替手段
リアルタイムのデータ更新が必要ない場合は、参照で get() 呼び出しを使用してドキュメントを 1 回読み取ることを検討してください。
自動リスナー削除
より洗練されたソリューションの場合は、addSnapshotListener():
<code class="java">ListenerRegistration lg = yourDocumentRef .addSnapshotListener(YourActivity.this, eventListener);</code>の最初の引数としてアクティビティを渡します。
以上がFirebaseUI と addSnapshotListener を使用して RecyclerView アダプターのドキュメント参照にアクセスして更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。