使用Firestore对多个查询进行CombineLatest

时间:2019-10-16 15:17:23

标签: angular typescript google-cloud-firestore

它希望为Firestore创建多个查询,以便能够将可观察的对象组合为一个。我将快照更改用于Firestore(angularFire),然后使用CombineLatest将两者分组。我在TypeScript上遇到此错误,并且在不使用Payload的情况下无法获取两个值: 属性“有效载荷”在类型“ DocumentChangeAction []”上不存在。ts(2339)

getAnnonces(limit){
    const requete1 = this.firestore.collection('annonce', ref => ref
    .where("secteurActivite","==", "Banque")
    .where("departement","==", "Rhône")
    .orderBy("date")
    .limit(limit)).snapshotChanges();

    const requete2 = this.firestore.collection('annonce', ref => ref
    .where("secteurActivite","==", "Finance")
    .where("departement","==", "Isère")
    .orderBy("date")
    .limit(limit)).snapshotChanges();

    const values = combineLatest(requete1, requete2)
    .subscribe(
      responseData => {
          this.tabTest = responseData.map(item => {
            return {
              id : item.payload.doc.id,
              titre :  item.payload.doc.get('titre'),
              secteurAct : item.payload.doc.get('secteurActivite'),
              departement : item.payload.doc.get('departement'),
              region : item.payload.doc.get('region'),
              description : item.payload.doc.get('description'),
              infosClefs : item.payload.doc.get('name'),
            };
          })
      });

    }//END GETANNONCES

1 个答案:

答案 0 :(得分:0)

 getAnnonces(limit){
    const requete1 = this.firestore.collection('annonce', ref => ref
    .where("secteurActivite","==", "Banque")
    .where("departement","==", "Rhône")
    .orderBy("date")
    .limit(limit)).valueChanges()

    const requete2 = this.firestore.collection('annonce', ref => ref
    .where("secteurActivite","==", "Finance")
    .where("departement","==", "Isère")
    .orderBy("date")
    .limit(limit)).valueChanges()

    merge(requete1, requete2).subscribe(console.log);

    }//END GETANNONCES