【问题标题】:Combine firestore queries with rxjs (OR query)将 firestore 查询与 rxjs(或查询)结合使用
【发布时间】:2020-02-14 17:54:39
【问题描述】:

我正在尝试使用 RxJS 在 Ionic/Angular 项目中组合两个 Firestore 查询。我发现 this blog post 从中解释了基本原理,但是,.combineLatest 方法已被弃用,我不知道如何将这两个查询通过管道传输到地图中。

caOrCoCities$: Observable<City[]>;

...

const californiaRef = this.angularFirestore
    .collection("cities", ref => ref.where("state","==","CA"));
const coloradoRef = this.angularFirestore
    .collection("cities", ref => ref.where("state","==","CO"));

不知道如何在下面更新...

this.caOrCoCities$ = Observable
    .combineLatest(californiaRef.valueChanges(),
                   coloradoRef.valueChanges())
    .switchMap(cities => {
        const [californiaCities, coloradoCities] = cities;
        const combined = californiaCities.concat(coloradoCities);
        return Observable.of(combined);
    });

【问题讨论】:

  • 你使用的 RxJS 版本是什么?
  • @Nikhil 6.4.0 版

标签: angular typescript firebase rxjs ionic4


【解决方案1】:

RxJS 6 在语法上有几个变化。您可以如下所示更改您的代码。

import { combineLatest, of } from 'rxjs';

this.caOrCoCities$ = combineLatest(californiaRef.valueChanges(), coloradoRef.valueChanges())
    .pipe(
       switchMap(cities => {
         const [californiaCities, coloradoCities] = cities;
         const combined = californiaCities.concat(coloradoCities);
         return of(combined);
       })
    );

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2022-01-14
  • 2017-05-31
相关资源
最近更新 更多