Rumah >Java >javaTutorial >Bagaimana untuk Mengurus Kemas Kini Data Masa Nyata dengan Cekap dalam RecyclerView menggunakan FirebaseUI dan addSnapshotListener?
Mendengar Data Masa Nyata dalam RecyclerView dengan FirebaseUI-Android
Dalam RecyclerView, di mana kemas kini data kerap diperlukan, menggunakan FirebaseRecyclerAdapter ialah pilihan yang berkesan untuk mendengar perubahan dalam data masa nyata daripada Firebase. Walau bagaimanapun, apabila bekerja dengan medan Rujukan dalam dokumen koleksi, anda mungkin mahu menggunakan addSnapshotListener dalam kaedah populateViewHolder untuk mendapatkan dan memaparkan data.
AddSnapshotListener lwn. Mengalih keluar Pendengar
Firebase memerlukan anda mengalih keluar sebarang addSnapshotListener yang ditambahkan apabila ia tidak diperlukan lagi. Ini penting untuk mengelakkan trafik rangkaian yang tidak diperlukan dan mengoptimumkan prestasi.
Penyelesaian
Untuk menambah dan mengalih keluar addSnapshotListener dengan berkesan dalam kaedah populateViewHolder, ikut langkah berikut:
Buat EventListener
<code class="java">EventListener<DocumentSnapshot> eventListener = new EventListener<DocumentSnapshot>() { @Override public void onEvent(DocumentSnapshot snapshot, FirebaseFirestoreException e) { // Implement your data retrieval logic here } };</code>
Isytiharkan pembolehubah global untuk pendengar PENDAFTARAN:
<code class="java">private ListenerRegistration listenerRegistration;</code>
Tambahkan SnapshotListener di lokasi yang sesuai:
<code class="java">if (listenerRegistration == null) { listenerRegistration = yourRef.addSnapshotListener(eventListener); }</code>
Alih keluar pendengar dalam kaedah onStop():
<code class="java">@Override protected void onStop() { if (listenerRegistration != null) { listenerRegistration.remove(); } }</code>
Lampirkan semula pendengar dalam kaedah onStart() (jika perlu):
<code class="java">@Override protected void onStart() { super.onStart(); listenerRegistration = yourRef.addSnapshotListener(eventListener); }</code>
Sebagai alternatif, anda boleh menggunakan aktiviti sebagai hujah pertama dalam addSnapshotListener() untuk mempunyai Firestore secara automatik bersihkan pendengar apabila aktiviti dihentikan.
Ingat, addSnapshotListener paling sesuai untuk senario yang memerlukan kemas kini data masa nyata. Jika tidak, satu panggilan get() terus pada rujukan akan mencukupi untuk bacaan sekali sahaja tanpa memerlukan pengalihan keluar pendengar.
Atas ialah kandungan terperinci Bagaimana untuk Mengurus Kemas Kini Data Masa Nyata dengan Cekap dalam RecyclerView menggunakan FirebaseUI dan addSnapshotListener?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!