使用forRoot传递在库中导入的angularFire配置

时间:2018-04-11 13:22:48

标签: angular firebase angularfire2

我在自定义库中使用angularFire2

@NgModule({
  imports: [
    CommonModule,
    AngularFireModule.initializeApp(firebaseConfig),
    AngularFirestoreModule
  ]
})
export class CustomModule {
  static forRoot(firebaseConfig: FirebaseOptions): ModuleWithProviders {
    return {
    ...
    }
  }
}

使用者库调用CustomModule.forRoot({config ...})

我的问题是如何在AngularFireModule.initializeApp(firebaseConfig)中提供配置数据?

1 个答案:

答案 0 :(得分:2)

几周前,我遇到了这个问题,您需要做的是在导入部分中删除initializeApp调用,并将FirebaseOptionsToken添加到您的forRoot声明中,如下所示:

@NgModule({
  imports: [
    CommonModule,
    AngularFireModule,
    AngularFirestoreModule
  ]
})
export class CustomModule {
  static forRoot(firebaseConfig: FirebaseOptions): ModuleWithProviders {
    return {
       ngModule: CustomModule,
       providers: [
           { provide: FirebaseOptionsToken, useValue: firebaseConfig }
       ]
    }
  }
}

如果您查看initializeApp方法in Angular/Fire,则会发现它在调用时是如何做的。

它对我有用,希望能帮助其他遇到相同问题的人。