AngularFire2 с Observables не перехватывает свойство $ref
Поэтому я начал использовать AngularFire2 (версия 4.0.0-rc.1) и застрял на этой проблеме:
getWishlist$(): FirebaseListObservable<{}> {
return <FirebaseListObservable<{}>>this.store.select(getFirebaseUID)
.filter(res => res.isAuthenticated)
.map(res => res.UserUUID)
.switchMap(uid => this.db.list(`/wishlist/${uid}/products`));
}
Так что после оператора switchMap он должен вернуть мне оригинальный Observable от this.db.list()
это FirebaseListObservable, но этого не происходит, и мой следующий код имеет ошибку во время выполнения.
this.accountService.getWishlist$().$ref
.orderByChild('pk').equalTo(designer.pk).once('value', (data) => {
if (!data.exists()) {
this.accountService.getWishlist$().push(designer);
}
})
И ошибка:
Cannot read property 'orderByChild' of undefined
Что я делаю не так?
1 ответ
Я ответил на аналогичный вопрос, который был задан через вопрос репо:
Это не так
switchMap
- и RxJS, в общем-то - работает. Наблюдаемая, возвращаемая оператором, зависит от наблюдаемой, по которой вызывается оператор. Сказанное наблюдаемое может реализоватьlift
вернуть наблюдаемый экземпляр того же типа.Реализуемые AngularFire2 реализуют
lift
- смотрите здесь и здесь - но это не имеет значения в ситуации, которую вы описали,...
Наблюдаемое, которое возвращается из вашего switchMap
вызов является наблюдаемым, который был снят с this.store.select
- не из this.db.list
,