AngularFirestore:类型“QueryDocumentSnapshot<any>”上不存在属性“id”

Joh*_*ohn 6 firebase typescript angular google-cloud-firestore

这是 Angular5 和 Firestore 的问题

我想做的事

  • 获取一个 Firestore 集合,它在我的数据库中被称为 minutes

  • 将我的组件变量(也称为 )设置minutes为一个包含每个minute文档 ID的 Observable 对象。

现在我收到这个错误

Property 'id' does not exist on type 'QueryDocumentSnapshot<any>'

这是我从 Firestore 收集收藏的地方

minutesArray: AngularFirestoreCollection<any>;
minutes: Observable<any[]>;

constructor(private afs: AngularFirestore) {
  this.minutesArray = afs.collection<any>('minutes', ref => ref.orderBy('year', 'desc'));
  this.minutes = this.minutesArray
                   .snapshotChanges()
                   .pipe(map(actions => actions.map(a => {
                       const data = a.payload.doc.data();
                       #### NEXT LINE ERRORS OUT ####
                       const id = a.payload.doc.id;
                       return { id, ...data };
                     }))
                   );
Run Code Online (Sandbox Code Playgroud)

为什么会抛出这个错误?

这个Github 问题没有提供答案。

`

小智 4

尝试使用:

doc.payload.doc['id']
Run Code Online (Sandbox Code Playgroud)

代替:

doc.payload.doc.id
Run Code Online (Sandbox Code Playgroud)