排序数据降序列表Firebase Angular2

时间:2016-12-16 13:35:24

标签: angular firebase firebase-realtime-database angularfire2

是否可以在Angular2中使用Firebase对降序值进行排序?在我的示例中,我想使用timestamp字段作为排序值。

我已尝试过这种方法,但在排序降序方面没有成功。

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

我能想到的一个选择是将这些值推送到新数组,然后返回该数组,但这似乎不是最理想的。

1 个答案:

答案 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"]