angular - firestore sorgularını rxjs ile birleştirme (VEYA sorgusu)
RxJS kullanarak bir Ionic/Angular projesinde iki Firestore sorgusunu birleştirmeye çalışıyorum. Temel prensibi açıklayan bu blog yazısını buldum, ancak .combineLatest yöntemi kullanımdan kaldırılmış ve iki sorguyu bir haritaya (map) nasıl pipe edeceğimi çözemedim.
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"));
Aşağıdakini nasıl güncelleyeceğimden emin değilim...
this.caOrCoCities$ = Observable
.combineLatest(californiaRef.valueChanges(),
coloradoRef.valueChanges())
.switchMap(cities => {
const [californiaCities, coloradoCities] = cities;
const combined = californiaCities.concat(coloradoCities);
return Observable.of(combined);
});
Cevap #1
RxJS 6'nın sözdiziminde birkaç değişiklik yapıldı. Kodunuzu aşağıda gösterildiği gibi değiştirebilirsiniz.
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);
})
);
