Firebase - Filtrage des données

Firebase propose plusieurs méthodes pour filtrer les données.

Limiter au premier et au dernier

Comprenons ce qu'est la limite au premier et au dernier.

  • limitToFirst La méthode renvoie le nombre d'éléments spécifié en commençant par le premier.

  • limitToLast La méthode renvoie un nombre spécifié d'éléments en commençant par le dernier.

Notre exemple montre comment cela fonctionne. Comme nous n'avons que deux joueurs dans la base de données, nous limiterons les requêtes à un seul joueur.

Exemple

Prenons l'exemple suivant.

var firstPlayerRef = firebase.database().ref("players/").limitToFirst(1);

var lastPlayerRef = firebase.database().ref('players/').limitToLast(1);

firstPlayerRef.on("value", function(data) {
   console.log(data.val());
}, function (error) {
   console.log("Error: " + error.code);
});

lastPlayerRef.on("value", function(data) {
   console.log(data.val());
}, function (error) {
   console.log("Error: " + error.code);
});

Notre console enregistrera le premier joueur de la première requête et le dernier de la deuxième requête.

Autres filtres

Nous pouvons également utiliser d'autres méthodes de filtrage Firebase. lestartAt(), endAt() et le equalTo()peut être combiné avec des méthodes de commande. Dans notre exemple, nous allons le combiner avec leorderByChild() méthode.

Exemple

Prenons l'exemple suivant.

var playersRef = firebase.database().ref("players/");

playersRef.orderByChild("name").startAt("Amanda").on("child_added", function(data) {
   console.log("Start at filter: " + data.val().name);
});

playersRef.orderByChild("name").endAt("Amanda").on("child_added", function(data) {
   console.log("End at filter: " + data.val().name);
});

playersRef.orderByChild("name").equalTo("John").on("child_added", function(data) {
   console.log("Equal to filter: " + data.val().name);
});

playersRef.orderByChild("age").startAt(20).on("child_added", function(data) {
   console.log("Age filter: " + data.val().name);
});

La première requête classera les éléments par nom et filtre à partir du lecteur avec le nom Amanda. La console enregistrera les deux joueurs. La deuxième requête enregistrera "Amanda" puisque nous terminons la requête avec ce nom. Le troisième enregistrera "John" puisque nous recherchons un joueur avec ce nom.

Le quatrième exemple montre comment nous pouvons combiner des filtres avec une valeur "age". Au lieu d'une chaîne, nous passons le nombre à l'intérieur dustartAt() méthode puisque l'âge est représenté par une valeur numérique.