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
DDDoriginal
2024-10-26 09:31:30891parcourir

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>
  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>

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>

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>

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!

Déclaration:
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