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

标签 angular typescript firebase google-cloud-firestore

这是 Angular5 和 Firestore 的问题

我想做的事

  • 获取一个 Firestore 集合,它在我的数据库中被称为 minutes
  • 设置我的组件变量,也称为 minutes , 等于一个包含每个 minute 的 Observable 对象文档 ID。

  • 现在我收到这个错误
    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没有提供答案。

    `

    最佳答案

    尝试使用:

    doc.payload.doc['id']
    
    代替:
    doc.payload.doc.id
    

    关于AngularFirestore : Property 'id' does not exist on type 'QueryDocumentSnapshot<any>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50953658/

    相关文章:

    typescript - 我如何监视 Typescript 的 getter 和 setter?

    javascript - Firebase 从实时数据库检索数据时的加载指示器

    css - 谷歌自动完成下拉位置问题

    angular - 如何将 *ngIf 值从一个组件传递到另一个组件?

    php - 通过 HTTP POST 将数据从 Angular 应用程序发送到 API

    javascript - 如何在firebase上执行sql "LIKE"操作?

    firebase - 新Firestore的限制说明

    angular - Nativescript Angular 可以在文本更改事件发生之前拦截它吗?

    TypeScript - 特定的字符串类型

    javascript - 如何将函数链接到 JavaScript 中的 HTML 按钮和文本字段