Firebase: filtrado de datos
Firebase ofrece varias formas de filtrar datos.
Límite al primero y al último
Entendamos qué límite es el primero y el último.
limitToFirst El método devuelve el número especificado de elementos comenzando por el primero.
limitToLast El método devuelve un número específico de elementos a partir del último.
Nuestro ejemplo muestra cómo funciona esto. Como solo tenemos dos jugadores en la base de datos, limitaremos las consultas a un jugador.
Ejemplo
Consideremos el siguiente ejemplo.
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);
});
Nuestra consola registrará el primer jugador de la primera consulta y el último jugador de la segunda consulta.
Otros filtros
También podemos usar otros métodos de filtrado de Firebase. losstartAt(), endAt() y el equalTo()se puede combinar con métodos de pedido. En nuestro ejemplo, lo combinaremos con elorderByChild() método.
Ejemplo
Consideremos el siguiente ejemplo.
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 primera consulta ordenará los elementos por nombre y filtrará del reproductor con el nombre Amanda. La consola registrará a ambos jugadores. La segunda consulta registrará "Amanda" ya que estamos terminando la consulta con este nombre. El tercero registrará "John" ya que estamos buscando un jugador con ese nombre.
El cuarto ejemplo muestra cómo podemos combinar filtros con el valor de "edad". En lugar de una cadena, estamos pasando el número dentro delstartAt() método ya que la edad está representada por un valor numérico.