gpt4 book ai didi

AngularFire2 - .valueChanges() 不返回我的数据

转载 作者:行者123 更新时间:2023-12-02 02:53:57 26 4
gpt4 key购买 nike

我是 AngularFire + Firebase 的新手,我正在尝试从 angularfire2 github 上学习教程。

当我执行这段代码时:

items: Observable<any[]>;
constructor(db: AngularFireDatabase) {
this.items = db.list('items').valueChanges();
}

然后在控制台中打印变量 this.items,它将下面的句子显示为值(我已经):

Observable {_isScalar: false, source: Observable, operator: MapOperator}
operator
:
MapOperator {project: ƒ, thisArg: undefined}
source
:
Observable {_isScalar: false, _subscribe: ƒ}
_isScalar
:
false
__proto__
:
Object

我的问题是,数据库中的数据在哪里?我创建了一个包含一些数据的数据库来执行此操作,但没有返回节点“items”中的任何内容。

提前致谢

我的 Firebase 结构:

{
"items": {
"1": {
"code": "C001",
"name": "client test"
},
"2": {
"code": "C002",
"name": "client test 2"
}
}
}

编辑:

我的导入:

组件:

import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { Observable } from 'rxjs';

Ng 模块:

AngularFireModule.initializeApp({
// data from firebase
}),
AngularFireDatabaseModule

我正在使用 Firebase 实时数据库


已解决

是rxjs版本的问题。我更新到 6.2.0 版本并且代码有效:)

最佳答案

首先,您不在构造函数内部查询。让构造函数保持简单并使用生命周期 Hook 或您自己的方法。

如我所见,items 是一个 Observable。但是你没有订阅它。您需要订阅 items 或者您可以在模板中使用 async 管道。数据将随着时间的推移得到解决。

在你的类里面:

this.db.collection("items")
.valueChanges()
.subscribe(res => {})

或者在模板中:

<some-component *ngFor="let item of items | async"></some-component>

关于AngularFire2 - .valueChanges() 不返回我的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50500534/

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