typescript - 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:我是新来的反应。
解决方案
非反应方式
如果您正在寻找一种不使用 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)
});
推荐阅读
- html - Jinja 语句 ({% for loop%}) 无法在线服务器上读取
- templates - 当 azure devops 中的模板更改时,我可以排除作业的执行吗?
- excel - 如何从过滤范围快速复制和粘贴
- google-bigquery - 如何在 BigQuery 计划查询错误消息中动态包含值?
- php - 如何根据CQS原理命名Cache-Aside函数
- mysql - MYSQL LEFT JOIN 将所有数据返回为 NULL
- javascript - Reducer 不带初始状态
- html - 使用 div 作为选项卡如何更改单击的背景颜色并将其他颜色设置回原始颜色?
- javascript - 散景按钮在交互式绘图中不起作用
- android - Android协程作业加入混乱