2017-07-17 2 views
0

Ich möchte meine Abfrage basierend auf dem Wert 'order_date' bestellen. Leider gibt es sie in der umgekehrten Reihenfolge zurück (älteste Bestellungen zuerst). Ich versuche das auch mit Paginierung zu erreichen. Dies ist meine aktuelle Abfrage.Verwenden von OrderByChild Firebase, um die neuesten Posts zu erhalten

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

Antwort

1

Es gibt keine Möglichkeit, in umgekehrter Reihenfolge mit Firebase abzufragen. Sie werden limitToLast verwenden müssen:

var orders = fbdatabase.ref('orders') 
    .orderByChild('order_date') 
    .limitToLast(20); 

orders.on('value', function(snapshot) { 
    console.log(snapshot.val().reverse()); 
}); 

Alternativ können Sie ein zusätzliches Feld wie order_date_desc speichern, die einen negativen Wert (unter der Annahme, Zeitstempel) verwendet.

1

Zusätzlich zu Michaels Antwort behalten Sie auch nicht die Reihenfolge in Ihrem Rückruf. Es ist wichtig, über die Snapshot-Schleife snapshot.forEach() verwenden, bevor .val() Aufruf:

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

Siehe

Verwandte Themen