addSnapshotListener를 사용하여 RecyclerView 어댑터에서 문서 참조에 액세스
FirebaseUI-Android는 FirebaseRecyclerAdapter를 제공하여 RecyclerView에 실시간 데이터를 효율적으로 표시합니다. 그러나 데이터 객체 내의 문서 참조를 처리할 때 데이터를 검색하기 위해 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() 호출을 사용하여 문서를 한 번 읽어보세요.
자동 리스너 제거
보다 우아한 솔루션을 위해 addSnapshotListener()의 첫 번째 인수로 액티비티를 전달하세요.
<code class="java">ListenerRegistration lg = yourDocumentRef .addSnapshotListener(YourActivity.this, eventListener);</code>
위 내용은 FirebaseUI 및 addSnapshotListener를 사용하여 RecyclerView 어댑터에서 문서 참조에 액세스하고 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!