2016-12-16 7 views
1

Kann man mit Firebase in Angular2 absteigende Werte sortieren? In meinem Beispiel möchte ich das Timestamp-Feld als Sortierwert verwenden.Sortieren von Daten absteigende Liste Firebase Angular2

Ich habe mit diesem Ansatz versucht, aber es war nicht erfolgreich beim Sortieren absteigend.

this.items = af.database.list('/items', { 
     query: { 
     orderByChild: 'timestamp' 
     } 
    }); 

Eine Option, die ich denken kann, würde diese Werte in ein neues Array drängen, wie sie ankommen und dann das Array zurück, aber das scheint nicht optimal.

+0

Haben Sie eines von dort versucht? http://stackoverflow.com/search?q=%5Bfirebase%5D+sort+descending –

Antwort

1

Ich kenne mich mit Firebase-Abfragen nicht aus, aber wenn das Empfangen der bereits sortierten Daten keine strenge Anforderung ist, können Sie die Daten einfach nach dem Empfangen sortieren.

//using ES 2016 syntax (copy and paste in latest Chrome dev tools to try out) 

var times = [new Date('1/1/16').toISOString(),new Date('1/2/16').toISOString(),new Date('1/3/16').toISOString()]; 

console.log(times); 
// ["2016-01-01T05:00:00.000Z", "2016-01-02T05:00:00.000Z", "2016-01-03T05:00:00.000Z"] 

var sortedDesc = times.sort((t1,t2) => { 
    if(t1 === t2) return 0; 
    if(t1 > t2) return -1; 
    if(t1 < t2) return 1; 
}); 

console.log(sortedDesc); 
// ["2016-01-03T05:00:00.000Z", "2016-01-02T05:00:00.000Z", "2016-01-01T05:00:00.000Z"] 
+0

Array.Sort Dokumentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Sortieren – wickdninja

Verwandte Themen