首页 > 解决方案 > Angular Firestore 中有 .get() 吗?

问题描述

我已经看到有一个 .valueChanges() 和 .snapshotChanges() 两者都监听数据库中的更改,但是如果我只想检索一次数据怎么办?我注意到在 .valueChanges() 或 .snapshotChanges() 末尾添加 .pipe(take(1)) 有效,但它与 firebase firestore 在 admin sdk 和 mobile sdk for Android 中提供的 .get() 函数相同吗? IOS?

我在做什么

 this.items = this.itemCollection.valueChanges().pipe(take(1));

我期待什么

 this.items = this.itemCollection.get();

PS:我是新来的反应。

标签: typescriptfirebasegoogle-cloud-firestorerxjsangularfire2

解决方案


非反应方式

如果您正在寻找一种不使用 react 的方法,您可以在 ref 上调用 get() 方法而不是集合项。

this.itemCollection.ref.get().then((querySnap) => {
     //use your data here
     console.log(querySnap.docs);
});

反应方式

this.itemCollection.get() 返回一个可以订阅的 QuerySnapshot 类型的 observable

this.itemCollection.get().subscribe((querySnap) => {
 console.log(querySnap.docs)
});

推荐阅读