コンフィグレーションデータが実行時にロードされ、AnuglarFire2がモジュール宣言内のデータを必要とするため、問題が発生します。私は直接注入でデータにアクセスすることができますが、モジュールファイルのAngularFireModuleにデータを取得する方法を理解できません。モジュール内のAngularFire2 App Initモジュールと動的コンフィグデータとの衝突
実行時にデータが読み込まれることは、設定データをアプリケーションに取得するのに適しています。だから、私はこのプロセスを変更することはできません。したがって、私は問題の解決策を考え出す必要があります。
AngualrFire2設定ページ ここhttps://github.com/angular/angularfire2/blob/master/docs/1-install-and-setup.md
が私のファイルです:**
**コンフィグデータロード(main.ts)
function processConfigData(config, env) {
platformBrowserDynamic([
{provide: "appConfig", useValue: config},
{provide: "appEnv", useValue: env}
]).bootstrapModule(AppModule);
}
コンフィグデータがサーバーから引っ張られ、アプリに渡されます。
次に、私はDirect Injectionからデータを取得します。この時点で
**構成サービス(アプリ-config.service.ts)**
import { Inject, Injectable } from '@angular/core';
// Code came from:
https://gist.github.com/fernandohu/122e88c3bcd210bbe41c608c36306db9
@Injectable()
export class AppConfig {
constructor(@Inject("appConfig") private config, @Inject("appEnv") private env) {
}
/**
* Use to get the data found in the second file (config file)
*/
public getConfig(key: any) {
return this.config[key];
}
/**
* Use to get the data found in the first file (env file)
*/
public getEnv(key: any) {
return this.env[key];
}
、私は唯一の直接注入から設定データを取得する方法を知っています。私はAngularFire2を設定するモジュールに取り込む方法を理解できません。ここAngularFire2がそれを設定するための推奨されるコードは次のとおりです。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
// Must export the config
export const firebaseConfig = {
apiKey: '<your-key>',
authDomain: '<your-project-authdomain>',
databaseURL: '<your-database-URL>',
storageBucket: '<your-storage-bucket>',
messagingSenderId: '<your-messaging-sender-id>'
};
@NgModule({
imports: [
BrowserModule,
AngularFireModule.initializeApp(firebaseConfig)
],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule {}
この問題を解決するすべてのヘルプは大歓迎です。
これは完全に機能しました。それは私が望むのと同じように問題を解決します。ありがとう! – Joe