Maison > Java > javaDidacticiel > Comment accéder et mettre à jour les références de documents dans un adaptateur RecyclerView avec FirebaseUI et addSnapshotListener ?

Comment accéder et mettre à jour les références de documents dans un adaptateur RecyclerView avec FirebaseUI et addSnapshotListener ?

DDD
Libérer: 2024-10-26 09:31:30
original
886 Les gens l'ont consulté

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

Accès aux références de documents dans l'adaptateur RecyclerView avec addSnapshotListener

FirebaseUI-Android fournit FirebaseRecyclerAdapter pour afficher efficacement les données en temps réel dans RecyclerView. Cependant, lorsque vous traitez des références de documents dans des objets de données, vous devrez peut-être utiliser addSnapshotListener pour récupérer des données.

Pour remplir votre RecyclerView ViewHolder avec une référence de document :

  1. Créez un 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>
    Copier après la connexion
  2. Ajoutez une variable globale ListenerRegistration à votre classe.
  3. Ajoutez l'écouteur à la référence du document dans populateViewHolder :

    <code class="java">if (listenerRegistration == null) {
     listenerRegistration = docRef.addSnapshotListener(eventListener);
    }</code>
    Copier après la connexion

Suppression de l'écouteur

Pour éviter les fuites de mémoire et une utilisation excessive du réseau, supprimez l'écouteur lorsqu'il n'est plus nécessaire :

<code class="java">@Override
protected void onStop() {
    if (listenerRegistration != null) {
        listenerRegistration.remove();
    }
}</code>
Copier après la connexion

Gestion du cycle de vie

N'oubliez pas d'ajouter l'écouteur dans onStart() et de le supprimer dans onStop() pour garantir une bonne gestion du cycle de vie.

Alternatives

Si les mises à jour des données en temps réel ne sont pas nécessaires, envisagez d'utiliser un appel get() sur la référence pour lire le document une fois.

Suppression automatique de l'écouteur

Pour une solution plus élégante, transmettez l'activité comme premier argument dans addSnapshotListener() :

<code class="java">ListenerRegistration lg = yourDocumentRef
            .addSnapshotListener(YourActivity.this, eventListener);</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal