Подтвердить что ты не робот

Запрос Firebase по дате

Данные моей базы данных выглядят примерно так:

{
  "lambeosaurus": {
    "date" : 1420753443,
    "length" : 12.5,
    "weight": 5000
  },
  "stegosaurus": {
    "date" : 1429053443,
    "length" : 9,
    "weight" : 2500
  }
}

Я ищу способ фильтрации дат с использованием настраиваемого диапазона дат. Я видел несколько примеров в Интернете, где они запросили дату, но временная метка всегда была ключом, который невозможен в моем случае.

Соответствующий раздел - документация можно найти здесь: https://www.firebase.com/docs/web/guide/retrieving-data.html#section-queries

Важно, что обновление в реальном времени все еще поддерживается. Я также хочу только определить количество всех элементов, которые соответствуют критерию. Меня не интересует точка данных для каждого node.

4b9b3361

Ответ 1

Похоже, вы можете использовать метод orderBychild() для заказа по дочернему ключу или свойству (т.е. weight, length или date). И если вы связываете это с помощью startAt() и endAt(), мы можем построить запрос, который вы ищете:

var startDate = 14200000000;
var endDate = 14300000000;

ref.orderByChild("date").startAt(startDate).endAt(endDate)
  .on("child_added", function(snapshot){
    console.log("got the data!", snapshot);
  });