0

由于 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)

并将其结合起来以将可观察对象返回给我的组件。

我为此苦苦挣扎,所以我想我错过了一些非常明显的东西...

PS我知道我的数据模型可能会更好,但这是以后的事情..

4

1 回答 1

2

看看能不能帮到你。

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()
       }))

     })
  )

}
于 2018-07-11T11:25:46.973 回答