我目前正在使用Angular 2和angularFire2进行项目 . 我的数据库在Firebase中看起来像这样:base:/ data
[{Name:test1},
{Name:test2},
{Name:test3}]
所有项目也都有Firebase密钥 .
现在我试图用RX中的Observabels从Firebase中获取数据 . 当我这样做时,我在控制台中获取名称:
let items= af.database.list('/data').map(i=>{return i});
items.forEach(i=>i.forEach(e=>(console.log(e.name))));
输出:test1,test2,test3 . 一切正常 .
但是当我这样做时:
console.log(items.first());
我得到一个FirebaseListObservable .
我怎样才能从FirebaseListObservable中获得第一个对象?如何编辑列表中的项目?喜欢:
items[0].name=test3
如何从项目中获取Firebase密钥
我如何从列表中的项目获取firebaseKey?
1 回答
Observables
是一个异步数据结构,这意味着您实际上并不知道数据何时可用,您必须订阅Observable
并等待数据在next
处理程序中可用 .此外,
Observable
不是静态的,因此您无法将其索引 . 如果您只需要第一个项目,那么我建议您提取值并使用flatMap
first
map
组合进行修改 .