Firebase android pagination
Je suis en train de construire une application qui affichera les vidéos stockées sur firebase. La liste des vidéos doit être paginé de l'extraction de la plupart des 20 dernières vidéos à la fois.
Voici le code que j'ai pensé de travail
private void getVideos() {
Query videosQuery = FirebaseUtil.getVideosRef();
videosQuery.startAt(0);
videosQuery.endAt(1);
ChildEventListener videosChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String date = dataSnapshot.getKey();
String temp = date;
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(tag, "database error");
}
};
ValueEventListener videoValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String date = dataSnapshot.getKey();
String temp = date;
long count = dataSnapshot.getChildrenCount();
String value = dataSnapshot.getValue().toString();
temp = value;
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(tag, "database error");
}
};
// videosQuery.addChildEventListener(videosChildEventListener);
videosQuery.addValueEventListener(videoValueEventListener);
}
Mais au-dessus de code récupère ensemble de la liste des vidéos à la place limitée des vidéos. Comment peut-pagination être mis en œuvre.
Avez-vous trouvé un loin pour paginer?
Avez-vous quelque chose pour la pagination? j'ai aussi besoin de mettre en œuvre la pagination dans mon application en utilisant firebase.
Avez-vous quelque chose pour la pagination? j'ai aussi besoin de mettre en œuvre la pagination dans mon application en utilisant firebase.
OriginalL'auteur Vihaan Verma | 2016-06-08
Vous devez vous connecter pour publier un commentaire.
Ci-dessous le code que j'utilise pour la pagination qui montre le dernier nœud premier.
fragment implémente l'interface dans mon code. Vous pouvez enlever le @override notation
Pourriez-vous expliquer ce que
.onNoMoreImages();
est? MerciMerci pour le code ci-dessus, j'ai enfin trouvé la solution que j'ai besoin! Le ci-dessus
childEvenListener
me donnait doubleRecyclerView
éléments parce qu'ils n'ont pas été retiré à chaque fois que j'ai interrogé. Donc, ce que j'avais à faire différemment fut d'utiliseraddListenerForSingleValueEvent
au lieu dechildEventListener
. De cette façon, l'auditeur est immédiatement supprimé. Merci encore!Selon Firebase de la documentation: Vous pouvez utiliser startAt(), endAt(), et equalTo() pour choisir arbitraire de départ, de fin, et l'équivalence des points pour les requêtes. Cela peut être utile pour la pagination des données ou trouver des articles avec des enfants qui ont une valeur spécifique.
OriginalL'auteur Vihaan Verma
Vous voulez utiliser le limitToFirst/limitToLast méthodes pour récupérer un nombre limité de résultats.
https://www.firebase.com/docs/web/api/query/limittofirst.html
Vous devriez vraiment envisager de modifier la convention de nommage de vos vidéos à inclure leader 0s (c'est à dire video01, video02... video10, video11) parce que le code ci-dessus affichera exactement comme vous les avez ci-dessus (ce qui je suppose est de l'ordre?)
Alternativement, si vous êtes en train d'ajouter les vidéos via Java, vous pouvez simplement laisser firebase créer le uniqueids via push(). L'id unique sont générés d'une manière qui ils vont trier chronilogically, qui sonne comme il va satisfaire votre besoin de saisir la plus récente(ly ajoutée?) vidéos.
https://www.firebase.com/docs/web/api/firebase/push.html
ce n'est pas vraiment une réponse à la pagination. Il limite le temps de réponse pour les x derniers films.
OriginalL'auteur crookful
Ajouter un champ qui est un descendant de la valeur aux données, par ex: unix_timestamp (ou inversé timestamp) et l'utilisation limitToLast() avec votre requête select. Nous n'avons pas vraiment besoin de pagination comme firebase requête à exécuter et retour rapide. J'ai utiliser une requête pour obtenir 1000 enregistrements dans une seule requête a pas beaucoup de retard connu jusqu'à présent
Comment joindre un unix_timestamp (ou inversé timestamp) ? Actuellement, je suis en ajoutant un horodatage par la méthode suivante 'Valeurserveur.TIMESTAMP'
Eh bien, ne serait-ce pas vous forcer à avoir une id de champ à l'intérieur de la vidéo de l'enfant mise en œuvre? Et l'id doit être un nombre entier, ce qui est un incrément sur la création vous-même?
si vous souhaitez effectuer un tri par champ (champ de type entier) puis ajoutez un champ d'horodatage de sorte que vous n'avez pas besoin d'incrémentation automatique par programmation.
OriginalL'auteur Jayakrishnan PM
J'ai méthode suivante pour paginer par le biais d'un firebase en temps réel de la base de données d'un nœud:
Chaque fois que j'atteigne le bas de l'paginé de données, j'ai appeler le
getUsers(mAdapter.getLastItemId());
et puis, il apporte de la prochaine série de records.J'ai écrit un guide complet à l'open source exemple d'application sur ce que vous pouvez vérifier à https://blog.shajeelafzal.com/2017/12/13/firebase-realtime-database-pagination-guide-using-recyclerview/
OriginalL'auteur Shajeel Afzal
Depuis cette question concernant la mise en œuvre de la Pagination à une requête sur Firestore est marqué comme un double de cette question, je vais répondre ici.
Paginer une requête sur android Firestore
Maintenant, il suffit d'appeler le
loadCities()
méthode à chaque fois que vous avez besoin de charger plus de villes.OriginalL'auteur lovish
C'est comment j'ai mis en place la pagination de firebase base de données. Prenons le cas si nous avons de 100 messages. J'ai donc d'abord charger les 20 derniers messages de firebase c'est à dire 81 à 100. Puis faites défiler vers le haut j'appelle
getMoreMessages()
fonction de charge de 20 messages qui sont de 61 à 80 et ainsi de suite.OriginalL'auteur KishanSolanki124
Android de pagination de la bibliothèque peut être utilisée pour mettre en œuvre la pagination des données lues à partir de firebase base de données. Les données sont affichées dans recycleur de vue et la pagination de la composante extrait des pages en réponse à l'utilisateur de faire défiler les événements.
La pagination de la source de données des appels de votre firebase objet DAO en passant des paramètres de requête pour la page à afficher et les résultats sont passés à la pagination composant à l'aide de rappel qui lui sont fournis.
Voici un exemple complet de référence http://www.zoftino.com/firebase-pagination-using-android-paging-library
OriginalL'auteur Arnav Rao
accepté answear dos fonctionnent pas lorsque moins de la max. les itmes (21) dans la base de données.
c'est ma solution de construire sur le acceptées réponse:
0)définir les variables
1) définir un écouteur:
2) de charge plus d'écouteur:
3) obtenir plus d'articles:
amusez-vous!!
OriginalL'auteur Ronny Bigler