Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular NGRX/角度/火力基地_Angular_Firebase_Angularfire_Ngrx_Ngrx Effects - Fatal编程技术网

Angular NGRX/角度/火力基地

Angular NGRX/角度/火力基地,angular,firebase,angularfire,ngrx,ngrx-effects,Angular,Firebase,Angularfire,Ngrx,Ngrx Effects,我正在尝试使用ngrx store/effects以及angular和firebase开发一个应用程序 我很难理解为什么从服务中提取数据不起作用,但直接从firebase中提取数据却起作用。在特效课上,我只改变了一行 我知道对Firebase的服务调用实际上是有效的,因为我直接在组件中调用它并在页面上显示数据 但是,当我尝试在NGRX效果中使用相同的服务时,调用该服务时它不起作用,我必须使用AngularFire2调用Firebase 代码如下: 不工作 @Effect() pullArrayF

我正在尝试使用ngrx store/effects以及angular和firebase开发一个应用程序

我很难理解为什么从服务中提取数据不起作用,但直接从firebase中提取数据却起作用。在特效课上,我只改变了一行

我知道对Firebase的服务调用实际上是有效的,因为我直接在组件中调用它并在页面上显示数据

但是,当我尝试在NGRX效果中使用相同的服务时,调用该服务时它不起作用,我必须使用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 } })
        )

    })
工作

@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
      }
    });
  }
getAllCustomers(id:any=''):FirebaseListObservable{
返回此.af.database.list(this.customersRef{
查询:{
orderByChild:“父ID”,
equalTo:id
}
});
}

我刚刚解决了自己的问题。这两种编码效果的方法都是完全相同的

在我的服务中,我只有一个默认的id='',这使得服务不返回任何内容,当我从我的组件调用它时,我传递了一个id


真的很简单-就是看不见森林,看不见树木。

我刚刚解决了自己的问题。这两种编码效果的方法都是完全相同的

在我的服务中,我只有一个默认的id='',这使得服务不返回任何内容,当我从我的组件调用它时,我传递了一个id


真的很简单-只是看不到树的森林。

我不确定这是否有助于解决您的问题,但您最好编写
.ofType(…).switchMap(()=>this.customerDataService.getAllCustomers()).map(result=>({type:CUSTOMERS\u LOADED\u ACTION,payload:{CUSTOMERS:result})).ofType(…).switchMap(()=>this.customerDataService.getAllCustomers()).map(结果=>({type:CUSTOMERS\u LOADED\u ACTION,payload:{CUSTOMERS:result}))在您的效果中。