如何通过Angularfire 5.0从Firebase列表中获取密钥

时间:2017-12-02 07:31:06

标签: angular firebase angularfire2 angularfire5

我试图将我的Angularfire 4代码升级到最新版本。有一些重大变化,因为它不再发出$ key。官方文档声明通过嵌套我难以理解的地图操作符来管理它 -

constructor(afDb: AngularFireDatabase) {
  afDb.list('items').snapshotChanges().map(actions => {
    return actions.map(action => ({ key: action.key, ...action.payload.val() }));
  }).subscribe(items => {
    return items.map(item => item.key);
  });
}

这个嵌套地图如何运作?为什么我不能在单个地图运算符中执行相同的操作?

1 个答案:

答案 0 :(得分:0)

您必须将列表映射到包含此键值的列表。 我只是玩了一下它,这是我的firebase 4 vs firebase 5 code

旧代码:

.map(gamesList => {
   console.log(gamesList.$key)
})

新代码:

.map(gamesList => 
{ 
     return gamesList.map(action => ({ key: action.key, ...action.payload.val() 
})
.map(gamesKey => {
    console.log(gamesKey.key)
})