Angular Firestore 中有 .get() 吗?
Posted
技术标签:
【中文标题】Angular Firestore 中有 .get() 吗?【英文标题】:Is there a .get() in angular firestore? 【发布时间】:2020-08-22 20:47:20 【问题描述】:我看到有一个 .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:我是新手。
【问题讨论】:
据我所知,get()
调用似乎存在:github.com/angular/angularfire/blob/…。运行这段代码有什么问题?
你能给我指出任何文件吗?如何使用它来检索文档列表?
【参考方案1】:
非反应方式
如果您正在寻找一种不使用 react 的方法,您可以在 ref 上调用 get() 方法而不是集合项。
this.itemCollection.ref.get().then((querySnap) =>
//use your data here
console.log(querySnap.docs);
);
React 方式
this.itemCollection.get() 返回一个可以订阅的 QuerySnapshot 类型的 observable
this.itemCollection.get().subscribe((querySnap) =>
console.log(querySnap.docs)
);
【讨论】:
以上是关于Angular Firestore 中有 .get() 吗?的主要内容,如果未能解决你的问题,请参考以下文章
Mergemap Angular + firestore 集合
在 VScode 中找不到 @angular/fire/firestore 模块错误
在控制台中获取“timestampsInSnapshots 设置现在默认为 true”的 firestore 错误