Cloud Firestore - AngularFirestoreCollection - условное где - PullRequest
0 голосов
/ 30 марта 2020

Я использую AngularFirestoreCollection для извлечения данных из Cloud Firestore в режиме реального времени. Я использую Ioni c 5 и Angular 9.

Это моя (упрощенная) функция:

  async applyFilter(filterObject: any) {
this.trainingsByUser = this.afs.collection<Training>(this.tables.training, ref =>
    ref.where('idUser', '==', '1')
        .where('isCompetition', 'in', ['true', 'false'])
        .where('date', '>=', filterObject.DateStart)
        .where('date', '<=', filterObject.DateEnd)
        .orderBy('date', 'asc')
        .limit(3))
    .snapshotChanges()
    .pipe(
        map(actions => {
          return actions.map(a => {
            const data = a.payload.doc.data();
            data.id = a.payload.doc.id;
            return {...data};
          });
        })
    );

}

Что бы я хотел Для этого нужно применить эти «где» в условной форме:

-> Если условие подтверждено, выполнить фильтрацию по дате, если не по баллу.

I не знаю, как это сделать с помощью этой формы запроса, в которой используется QueryFn (ref).

Заранее благодарим вас за потраченное время и помощь, которую вы сможете мне оказать.

...