Я пытаюсь заставить приложение работать с магазином / эффектами ngrx и angular и firebase.
У меня проблемы с пониманием, почему при извлечении данных из службы они не работают, а при извлечении напрямую из firebase они работают. В классе эффектов я изменяю только одну строку.
Я знаю, что сервисный вызов Firebase действительно работает, потому что я вызываю его прямо в компоненте и отображаю данные на странице.
Однако, когда я пытаюсь использовать ту же службу в эффекте NGRX, она не работает при вызове службы, мне приходится вызывать Firebase с помощью AngularFire2.
Код ниже:
Не работает
@Effect() pullArrayFromFirebase$ = this.actions$
.ofType(LOAD_CUSTOMERS_ACTION)
.switchMap(() => {
***return this.customerDataService.getAllCustomers()***
.switchMap(result =>
Observable.of({ type: CUSTOMERS_LOADED_ACTION, payload: { customers: result } })
)
})
Работает
@Effect() pullArrayFromFirebase$ = this.actions$
.ofType(LOAD_CUSTOMERS_ACTION)
.switchMap(() => {
***return this.af.database.list('/customers')***
.switchMap(result =>
Observable.of({ type: CUSTOMERS_LOADED_ACTION, payload: { customers: result } })
)
})
Сервис
getAllCustomers(id: any = ''): FirebaseListObservable<CustomerModel[]> {
return this.af.database.list(this.customersRef, {
query: {
orderByChild: 'parentId',
equalTo: id
}
});
}
.ofType(...).switchMap(() => this.customerDataService.getAllCustomers()).map(result => ({ type: CUSTOMERS_LOADED_ACTION, payload: { customers: result } }));
в ваших эффектах. - person philipooo   schedule 28.03.2017