gpt4 book ai didi

angular - 使用 Angular2、angularfire2 和 Typescript 从 Firebase 对象中获取数据

转载 作者:太空狗 更新时间:2023-10-29 17:02:36 24 4
gpt4 key购买 nike

我目前正在使用 Angular 2 和 angularFire2 开发一个项目。我的数据库在 Firebase 中看起来像这样:基地:/数据

[{Name:test1},
{Name:test2},
{Name:test3}]

所有项目也有 Firebase key 。

现在我正在尝试使用来自 RX 的 Observabels 从 Firebase 中获取数据。当我这样做时,我在控制台中得到了名字:

let items= af.database.list('/data').map(i=>{return i});
items.forEach(i=>i.forEach(e=>(console.log(e.name))));

输出:测试 1、测试 2、测试 3。一切正常。

但是当我这样做的时候:

console.log(items.first());

我得到一个 FirebaseListObservable。

我怎样才能只从 FirebaseListObservable 中获取第一个对象?如何编辑列表中的项目?喜欢:

items[0].name=test3

以及如何从项目中获取 Firebase key

如何从列表中的项目中获取 firebaseKey?

最佳答案

Observable 是一种异步数据结构,这意味着您实际上不知道数据何时可用,您必须订阅 Observable 并等待以便数据在 next 处理程序中可用。

items.first().subscribe(x => console.log(x.name));

此外,Observable 不是静态的,因此您不能对它进行索引。如果您只需要第一项,那么我建议您提取值并使用 flatMap + first + map 组合对其进行修改。

af.database.list('/data')
//Convert array into Observable and flatten it
.flatMap(list => list)
//Get only the first item in this list
.first()
//Transform the value
.map(({name, firebaseKey}) => ({name: "test3", firebaseKey}))
//Subscribe to the stream
.subscribe(x => console.log(x));

关于angular - 使用 Angular2、angularfire2 和 Typescript 从 Firebase 对象中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38259038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com