我正在尝试让一个应用程序与 ngrx 存储/效果以及角度和火力一起工作。
我无法理解为什么从服务中提取数据时它不起作用但直接从 Firebase 中提取数据时它确实起作用。我在效果类中只更改了一行。
我知道对 Firebase 的服务调用确实有效,因为我直接在组件中调用它并在页面上显示数据。
但是,当我尝试在 NGRX Effect 中使用相同的服务时,它在调用服务时不起作用,我必须使用 AngularFire2 调用 Firebase。
下面的代码:
不工作
@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
}
});
}