Firebase предлагает несколько способов фильтрации данных.
Предел до первого и последнего
Давайте поймем, что такое предел первым и последним.
-
Метод limitToFirst возвращает указанное количество элементов, начиная с первого.
-
Метод limitToLast возвращает указанное количество элементов, начиная с последнего.
Метод limitToFirst возвращает указанное количество элементов, начиная с первого.
Метод limitToLast возвращает указанное количество элементов, начиная с последнего.
Наш пример показывает, как это работает. Поскольку в базе данных есть только два игрока, мы ограничим количество запросов одним игроком.
пример
Давайте рассмотрим следующий пример.
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); });
Наша консоль будет регистрировать первого игрока из первого запроса и последнего игрока из второго запроса.
Другие фильтры
Мы также можем использовать другие методы фильтрации Firebase. StartAt () , endAt () и equalTo () можно комбинировать с методами упорядочения. В нашем примере мы скомбинируем его с методом orderByChild () .
пример
Давайте рассмотрим следующий пример.
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); });
Первый запрос упорядочит элементы по имени и отфильтрует от игрока с именем Аманда . Консоль будет регистрировать обоих игроков. Второй запрос будет регистрировать «Аманда», так как мы заканчиваем запрос этим именем. Третий будет записывать «Джон», так как мы ищем игрока с таким именем.
Четвертый пример показывает, как мы можем комбинировать фильтры со значением «age». Вместо строки мы передаем число внутри метода startAt (), поскольку age представлен числовым значением.