从不同的列表中获取数据,并使用angularfire 5将它们组合在一起

时间:2018-01-10 20:33:34

标签: angular ionic2 angularfire angularfire5

自Angularfire5以来,我们不能再使用$ key了 所以我试图转换它,并找到了一个关于如何将列表更改为包含自己的键的列表的片段:

  getRankings(week): Observable<any>
  {
    return this.db.list('/ranking_day/d_' + week, ref => ref.orderByChild('position')).snapshotChanges()
    .map(rankings => {
     return rankings.map(action => ({ key: action.key, ...action.payload.val() }))
  })

现在我想从

中的对象获取一些数据
this.db.list('/userProfile' + key)

并将其组合以将observable返回到我的组件。

我正在努力奋斗,所以我想我错过了一些非常明显的事情......

PS我知道我的数据模型可能会更好,但以后就可以了......

1 个答案:

答案 0 :(得分:1)

看看是否可以帮助您。

getDrinks(pagename: string) {

  return this.database.list<DrinkType>(`/${pagename}/drinks`).snapshotChanges().pipe(map(changes => {
      return changes.map(c => ({
         key: c.payload.key,
         drinkType: this.database.list<DrinkType>(`${pagename}/drinkType/${c.payload.key}`) .snapshotChanges().pipe(map(actions => {
               return actions.map(action => ({
               key: action.payload.key,
               ...action.payload.val()
               }))
             })
           ),
          ...c.payload.val()
       }))

     })
  )

}