如何在 AngularFire 中使用文档 ID 查询文档?
How to query documents using document IDs in AngularFire?
我正在尝试根据文档 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 类型
不知道上面的代码对不对
我尝试了以下提到的解决方案:
将 ref.id 替换为 firebase.firestore.FieldPath.documentId() 但出现错误:
'firebase' refers to a UMD global, but the current file is a module.
帮我找回数据。
另一种方法是在创建文档时在文档中添加一个 id
字符串 属性(使其等于文档的实际 ID)并使用它进行查询。
我可以通过将 ref.id
替换为 firebase.firestore.FieldPath.documentId()
并导入来解决它
import * as firebase from 'firebase/app';
这个问题也可以通过导入 import * as firebase from 'firebase';
来解决,但是正如@Stratubas 在上面的评论部分中提到的那样,导入会给出
warning in the console
所以,建议使用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};
});
})
);
我正在尝试根据文档 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 类型
不知道上面的代码对不对
我尝试了以下提到的解决方案:
'firebase' refers to a UMD global, but the current file is a module.
帮我找回数据。
另一种方法是在创建文档时在文档中添加一个 id
字符串 属性(使其等于文档的实际 ID)并使用它进行查询。
我可以通过将 ref.id
替换为 firebase.firestore.FieldPath.documentId()
并导入来解决它
import * as firebase from 'firebase/app';
这个问题也可以通过导入 import * as firebase from 'firebase';
来解决,但是正如@Stratubas 在上面的评论部分中提到的那样,导入会给出
warning in the console
所以,建议使用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};
});
})
);