【问题标题】:Dynamic Querying in AngularFirestore2 with snapshotChanges()在 AngularFirestore2 中使用 snapshotChanges() 进行动态查询
【发布时间】:2018-06-16 20:48:30
【问题描述】:

使用 AngularFire2 文档提供的示例,我可以设置一个动态查询,该查询返回 valueChanges() 的可观察值。

在此处找到的示例: https://github.com/angular/angularfire2/blob/master/docs/firestore/querying-collections.md

如何使用 snapshotChanges() 完成同样的事情?

我正在寻找与每个文档关联的文档 ID。

【问题讨论】:

    标签: angularfire2 google-cloud-firestore


    【解决方案1】:

    ::facepalm::

    似乎它与正常流式传输相同。对于那些无论如何感兴趣的人:

    this.sizeFilter$ = new BehaviorSubject(null);
        this.colorFilter$ = new BehaviorSubject(null);
        this.items$ = Observable.combineLatest(
          this.sizeFilter$,
          this.colorFilter$
        ).switchMap(([size, color]) => 
          afs.collection('items', ref => {
              let query : firebase.firestore.CollectionReference | firebase.firestore.Query = ref;
              if (size) { query = query.where('size', '==', size) };
              if (color) { query = query.where('color', '==', color) };
              return query;
          }).snapshotChanges()
              .map(actions => {
                  return actions.map(a => {
                      const data = a.payload.doc.data() as any;
                      const id = a.payload.doc.id;
                      return {id, ...data};
                  });
              })
        );
    

    【讨论】:

      猜你喜欢
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      相关资源
      最近更新 更多