使用orderByChild Firebase获取最新帖子

时间:2017-07-17 20:39:33

标签: javascript firebase firebase-realtime-database

我想根据' order_date'来订购我的查询。值。不幸的是,它以相反的顺序返回它们(最早的订单首先)。我也试图通过分页来实现这一目标。这是我目前的查询。

var orders = fbdatabase.ref('orders').orderByChild('order_date');
orders.on('value', function(snapshot) {
  console.log(snapshot.val())
});

2 个答案:

答案 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())
  });
});