Запрос 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.
Ответы
Ответ 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);
});