Heim > Java > javaLernprogramm > Hauptteil

Wie kann ich mit FirebaseUI und addSnapshotListener auf Dokumentverweise in einem RecyclerView-Adapter zugreifen und diese aktualisieren?

DDD
Freigeben: 2024-10-26 09:31:30
Original
875 Leute haben es durchsucht

How to Access and Update Document References in a RecyclerView Adapter with FirebaseUI and addSnapshotListener?

Zugriff auf Dokumentverweise im RecyclerView-Adapter mit addSnapshotListener

FirebaseUI-Android bietet FirebaseRecyclerAdapter zur effizienten Anzeige von Echtzeitdaten in RecyclerView. Beim Umgang mit Dokumentverweisen innerhalb von Datenobjekten kann es jedoch erforderlich sein, addSnapshotListener zum Abrufen von Daten zu verwenden.

So füllen Sie Ihren RecyclerView ViewHolder mit einem Dokumentverweis:

  1. Erstellen Sie einen 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>
    Nach dem Login kopieren
  2. Fügen Sie Ihrer Klasse eine globale ListenerRegistration-Variable hinzu.
  3. Fügen Sie den Listener zur Dokumentreferenz in populateViewHolder hinzu:

    <code class="java">if (listenerRegistration == null) {
     listenerRegistration = docRef.addSnapshotListener(eventListener);
    }</code>
    Nach dem Login kopieren

Entfernen des Listeners

Um Speicherverluste und übermäßige Netzwerknutzung zu vermeiden, entfernen Sie den Listener, wenn er nicht mehr benötigt wird:

<code class="java">@Override
protected void onStop() {
    if (listenerRegistration != null) {
        listenerRegistration.remove();
    }
}</code>
Nach dem Login kopieren

Lebenszyklusmanagement

Denken Sie daran, den Listener in onStart() hinzuzufügen und in onStop() zu entfernen, um ein ordnungsgemäßes Lebenszyklusmanagement sicherzustellen.

Alternativen

Wenn keine Datenaktualisierungen in Echtzeit erforderlich sind, sollten Sie erwägen, einen get()-Aufruf für die Referenz zu verwenden, um das Dokument einmal zu lesen.

Automatische Listener-Entfernung

Für eine elegantere Lösung übergeben Sie die Aktivität als erstes Argument in addSnapshotListener():

<code class="java">ListenerRegistration lg = yourDocumentRef
            .addSnapshotListener(YourActivity.this, eventListener);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mit FirebaseUI und addSnapshotListener auf Dokumentverweise in einem RecyclerView-Adapter zugreifen und diese aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage