繁体   English   中英

将 Firestore 查询与 rxjs(或查询)结合使用

[英]Combine firestore queries with rxjs (OR query)

我正在尝试使用 RxJS 在 Ionic/Angular 项目中组合两个 Firestore 查询。 我发现这篇博客文章解释了基本原理,但是, .combineLatest方法已被弃用,我无法弄清楚如何将 pipe 两个查询转换为 map。

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 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);
       })
    );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM