使用 addSnapshotListener 存取 RecyclerView Adapter 中的文件引用
FirebaseUI-Android 提供了 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() 呼叫來讀取一次文件。
自動監聽器移除<code class="java">ListenerRegistration lg = yourDocumentRef .addSnapshotListener(YourActivity.this, eventListener);</code>要獲得更優雅的解決方案,請將活動作為addSnapshotListener() 中的第一個參數傳遞:
以上是如何使用 FirebaseUI 和 addSnapshotListener 存取和更新 RecyclerView 適配器中的文件參考?的詳細內容。更多資訊請關注PHP中文網其他相關文章!