如何在 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};
            });
        })
     );