AngularFire2遍历对象数组

时间:2017-05-29 19:51:15

标签: angular firebase angularfire angularfire2

我有以下Firebase数据库结构:

orders {
  $uid { // user UID
    order {
    // ...
    }
  }
}

我试图以这种方式获得所有订单:

public getOrders() {
  this.db.list('/orders).subscribe(items => {
    items.forEach(item => {
      console.log(item);
    })
  })
}

items

我的问题是,我如何获得所有订单? 因为现在,我无法遍历item

2 个答案:

答案 0 :(得分:0)

您可以将abc中的结果(items)保存在Firebase Database之后,然后使用Angular模板中的变量(HTML)。

Firebase数据库: /命令/

variable

组件的逻辑

[{
    "userId1": {
      "name": "Michael",
      "value": "55$"
    }
  },
  {
    "userId1": {
      "name": "Michael",
      "value": "55$"
    }
  }
]


组件模板

databaseOrders;
public getOrders() {
  this.db.list('/orders).subscribe(items => {
    this.databaseOrders = items;
  })
}

答案 1 :(得分:0)

好的,最后我可以通过以下方式解决它:

public getOrders() {
  this.db.list('/orders).subscribe(items => {
    items.forEach(item => {
      Object.keys(item).map(key=>item[key]).map(order => {
        console.log(order);
      })
    })
  })
}

因此,首先我们获取所有订单,然后使用forEach通过订单迭代每个对象。然后,使用Object.keys我们可以访问每个用户的订单。