是否可以在Angular2中使用Firebase对降序值进行排序?在我的示例中,我想使用timestamp字段作为排序值。
我已尝试过这种方法,但在排序降序方面没有成功。
this.items = af.database.list('/items', {
query: {
orderByChild: 'timestamp'
}
});
我能想到的一个选择是将这些值推送到新数组,然后返回该数组,但这似乎不是最理想的。
答案 0 :(得分:1)
我不熟悉Firebase查询,但如果接收已排序的数据并非严格要求,您可以在收到数据后对其进行排序。
//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"]