typescript - 如何在 AngularFire 中使用文档 ID 查询文档?
问题描述
我正在尝试根据文档 ID 查询文档,但无法使用
this.afs.collection<books>('books' , ref => ref.where( ref.id , 'in' , ['4L9uf4w5fqFXlU0uLbEM','bpXgEOmYqGor8uhUz2uq','tJFYPJcLMYNS8qnaUtMv'])).snapshotChanges().pipe(
map(actions => {
return actions.map( a => {
const data = a.payload.doc.data();
return {...data};
});
})
);
afs 是 AngularFirestore 类型
我不知道上面的代码是否正确。
我尝试了以下提到的解决方案: Query firestore database for document id by replace ref.id with firebase.firestore.FieldPath.documentId() 但我得到一个错误:
'firebase' 指的是一个 UMD 全局文件,但当前文件是一个模块。
帮助我检索数据。
解决方案
我可以通过替换ref.id
和firebase.firestore.FieldPath.documentId()
导入
来解决它import * as firebase from 'firebase/app';
该问题也可以通过导入来解决,import * as firebase from 'firebase';
但正如@Stratubas 在上面的评论部分中提到的,导入给出了
控制台中的警告
所以,建议使用import * as firebase from 'firebase/app';
最后我的代码看起来:
import * as firebase from 'firebase/app';
this.afs.collection<books>('books' , ref => ref.where( firebase.firestore.FieldPath.documentId() , 'in' , ['4L9uf4w5fqFXlU0uLbEM','bpXgEOmYqGor8uhUz2uq','tJFYPJcLMYNS8qnaUtMv'])).snapshotChanges().pipe(
map(actions => {
return actions.map( a => {
const data = a.payload.doc.data();
return {...data};
});
})
);
推荐阅读
- r - 使用 R 中的包“imager”在图像上选择多边形?
- flutter - 等待调试连接时出错:日志阅读器意外停止颤动
- swift - 如何跟踪 rxSwift 是否更改了 textField 值?
- xamarin - Xamarin 表单,myDir.Mkdir(); 在 Android 项目中返回 false
- c# - 在 LINQ 查询中选择后排序
- jupyter-notebook - 如果存在小部件,则 Jupyter 错误“笔记本验证失败”(清除所有输出有帮助,但问题再次出现)
- c++ - 创建一个段树,但它仍然为空。我找不到错误?
- json - org.codehaus.jackson.JsonParseException: 意外字符 ('d' (code 100)): 期望用逗号分隔 OBJECT 条目\n
- python - 如何在 Scrapy 中解析动态参数
- python - Jupyter 环境错误,加载的 tensorflow 版本与安装的不同