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

时间:2018-06-20 17:11:46

标签: angular typescript firebase 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 };
                     }))
                   );

为什么会引发此错误?

Github Issue未提供答案。

`

2 个答案:

答案 0 :(得分:1)

尝试使用:

doc.payload.doc['id']

代替:

doc.payload.doc.id

答案 1 :(得分:0)

在 tsconfig.json 中启用 allowSyntheticDefaultImports 为我解决了这个问题

"allowSyntheticDefaultImports": true