Angularfir2使用orderByChild显示升序价格

问题描述 投票:0回答:1

在我的离子应用程序中,我使用angularfir2 v5,现在我需要在price字段中使用类别ID显示产品orderByChild升序/降序。下面是我的数据库结构

products:
  aaa:
    price: 10
    cat_id: 1
  fff:
    price: 9
    cat_id: 1
  ccc:
    price: 11
    cat_id: 1
  ddd:
    price: 10
    cat_id: 2

这是我在上面尝试实现的代码。

this.productRef = this.db.list(`/product`, ref => ref.orderByChild('cat_id').equalTo(1));
this.product = this.productRef.snapshotChanges().map(changes => {
    return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});

这给了我随机顺序的价格,我希望按升序获得价格。

angular firebase ionic3 angularfire2
1个回答
1
投票

您可以在客户端对其进行排序,执行:

load() {
  this.productRef = this.db.list('/product', ref => { 
      return ref.orderByChild('cat_id').equalTo(1)
  }).valueChanges();

  this.productRef.subscribe((products) => {
    this.sortedProducts = products.sort((a,b) => a.price <= b.price ? -1 : 1);
  })
}
© www.soinside.com 2019 - 2024. All rights reserved.