2017-06-20 1 views
0

Je travaille avec FirebaseRecyclerAdapter pour mon module de discussion. Maintenant, je suis à la recherche de solutions pour mettre à jour mon FirebaseRecyclerAdapter en fonction de la valeur de temps de ma base de données Firebase.mise à jour FirebaseRecyclerAdapter avec des valeurs spécifiques

Je veux montrer seulement les dernières 24 heures de conversation à l'intérieur FirebaseRecyclerAdapter. L'utilisateur peut mettre à jour cette valeur (24 heures).

J'ai le paramètre "createdAt" avec mes tous les messages dans le chat. Donc, je basé sur l'heure actuelle et "createdAt" pouvons-nous filtrer FirebaseRecyclerAdapter runtime?

J'ai cherché ceci, mais dans chaque publication je n'ai trouvé aucune solution.

Répondre

0

En supposant que vous enregistrez la date et l'heure en tant que TIMESTAMP, veuillez voir ma réponse à partir de ce post.

La seule différence est que vous avez besoin de comapare avec 24h. Avec votre structure de données, vous pouvez facilement créer une requête qui renvoie uniquement les éléments qui ne datent pas de plus de 30 jours et les affiche. S'il vous plaît utiliser ce code:

long display = new Date().getTime() - TimeUnit.MILLISECONDS.convert(30, TimeUnit.DAYS); 
Query messagesQuery = yourRef.orderByChild("timestamp").endAt(display); 
messagesQuery.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot snapshot) { 
     for (DataSnapshot messageSnapshot: snapshot.getChildren()) { 
      Log("TAG", messageSnapshot.getRef().getValue(String.class)); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}); 

Espérons que ça aide.

+0

Hey @Alex merci pour votre réponse. mais je n'ai pas de problème avec l'horodatage. Mais je suis incapable de cacher des enregistrements spécifiques dans FirebaseRecyclerAdapter. –

+0

C'est le même principe. Vous devez comparer les données de votre base de données (la valeur du champ 'createdAt') avec les données lorsque vous effectuez la vérification. Si la différence est <24h, affichez les messages autrement, n'affichez pas les messages. –

+0

Ok, vous voulez dire que nous allons exclure des enregistrements spécifiques avant de les envoyer à FirebaseRecyclerAdapter? –