Requête Firebase avec des solutions possibles de limite / décalage

Existe-t-il un moyen de récupérer des données de Firebase avec limite et offset? Par exemple j'ai environ 1000 éléments dans mon firebaseRef et je veux développer une sorte de pagination. Est-il possible de le faire sans charger la list complète des objects.

Pour l'instant j'utilise queryLimitedToLast(limit) pour le faire et augmenter la limit pour chaque page suivante. Mais cette méthode ne me permet pas de countr les pages.

METTRE À JOUR:

Une chose que je n'ai pas mentionnée mais c'est très important. Mes données montrent de-dernier-à-premier. Imaginez que c'est un simple messager mais avec pagination. Donc, je veux montrer les 20 derniers articles, puis 20 avant ces 20 etc.

Merci.

Yup, pagination à travers une longue list de nœuds enfants est certainement possible. L'astuce consiste à se souvenir de la key (ou de la priorité ou de la valeur que vous choisissez) du dernier élément de la page en cours, puis de le passer dans queryStartingAt... pour la page suivante.

Kato a écrit un excellent exemple dans son blog sur la façon de mettre en œuvre des requêtes SQL communes dans Firebase :

 // fetch page 2 of widgets new Firebase("https://examples-sql-queries.firebaseio.com/widget") .startAt(null, lastWidgetOnPrevPage) .limitToFirst(LIMIT+1) // add one to limit to account for lastWidgetOnPrevPage .once('value', function(snap) { var vals = snap.val()||{}; delete vals[lastWidgetOnPrevPage]; // delete the extraneous record console.log('widgets on this page', vals); }); 

Cet exemple utilise le SDK JavaScript, mais les methods appropriées sont également disponibles dans le SDK iOS.

Notez que cet extrait récupère un élément supplémentaire ( LIMIT+1 ), car nous commençons par le dernier élément de la page précédente.