我想根据' order_date'来订购我的查询。值。不幸的是,它以相反的顺序返回它们(最早的订单首先)。我也试图通过分页来实现这一目标。这是我目前的查询。
var orders = fbdatabase.ref('orders').orderByChild('order_date');
orders.on('value', function(snapshot) {
console.log(snapshot.val())
});
答案 0 :(得分:1)
无法使用Firebase以相反的顺序进行查询。您需要使用limitToLast
:
var orders = fbdatabase.ref('orders')
.orderByChild('order_date')
.limitToLast(20);
orders.on('value', function(snapshot) {
console.log(snapshot.val().reverse());
});
或者,您可以存储使用负值的其他字段order_date_desc
(假设为时间戳)。
答案 1 :(得分:1)
除了迈克尔的回答之外,您还没有保留回调中的订单。在调用snapshot.forEach()
之前使用.val()
循环快照非常重要:
var orders = fbdatabase.ref('orders').orderByChild('inverted_order_date');
orders.on('value', function(snapshot) {
snapshot.forEach(function(order) {
console.log(order.val())
});
});
见