Javascript 有没有办法使用ngModule中的可注入服务来初始化angular 4中的firebase应用程序?
我正在应用程序中使用firebase。firebase配置存储在环境文件中Javascript 有没有办法使用ngModule中的可注入服务来初始化angular 4中的firebase应用程序?,javascript,angular,Javascript,Angular,我正在应用程序中使用firebase。firebase配置存储在环境文件中 export const environment = { production: false, firebase: { apiKey: "api-key", authDomain: "project-id.firebaseapp.com", databaseURL: "https://project-id.firebaseio.com", projectId: "proje
export const environment = {
production: false,
firebase: {
apiKey: "api-key",
authDomain: "project-id.firebaseapp.com",
databaseURL: "https://project-id.firebaseio.com",
projectId: "project-id",
storageBucket: "project-id.appspot.com",
messagingSenderId: "sender-id",
appID: "app-id",
}
};
我用这个配置初始化了firebase应用程序
import { environment } from '../../../environments/environment';
import { AngularFireModule } from 'angularfire2';
@NgModule({
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFireDatabaseModule,
],
declarations: [],
providers: [],
entryComponents: [],
})
export class InboxModule {}
到目前为止,一切顺利。但我想根据品牌从API调用中获取firebase配置,并根据响应初始化应用程序
我编写了一个可注入服务,用于存储配置
import { Injectable } from '@angular/core';
@Injectable()
export class FirebaseService {
private _firebaseConfig = null;
constructor() {}
get firebaseConfig() {
return this._firebaseConfig;
}
set firebaseConfig(val) {
this._firebaseConfig = val;
}
}
但我无法在NGM模块中使用它
import { environment } from '../../../environments/environment';
import { AngularFireModule } from 'angularfire2';
import { FirebaseService } from '../services/firebase.service';
@NgModule({
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFireDatabaseModule,
],
declarations: [],
providers: [],
entryComponents: [],
})
export class InboxModule {
constructor(private firebaseService: FirebaseService) {
AngularFireModule.initializeApp(this.firebaseService.firebaseConfig);
}
}
我得到了这个错误
Error: No provider for InjectionToken FirebaseAppConfigToken!
这是因为没有正确初始化应用程序
export class InboxModule {
constructor(private firebaseService: FirebaseService) {
console.log(this.firebaseService.firebaseConfig) // Works
// Unable to initialize the App though.
AngularFireModule.initializeApp(this.firebaseService.firebaseConfig);
}
}
我还缺什么吗?或者任何其他方法来解决这个用例