0

私は複数のモジュールとコンポーネントを持つプロジェクトを持っています。現在、モジュールごとにAngularFireModuleを初期化していますので、そのモジュールの下にあるコンポーネントでfirebaseデータベース/認証情報を使用できます。私はこれが何度もAngularFireModuleを初期化する必要はないと私は何かを理解していないように感じる。私はAngularFireModuleおよびすべてのモジュール/コンポーネントがサービスを利用することができますINITSサービスの作成について考えAngularFireModuleはanglejsアプリケーション全体で共有されています

//app.module.ts 
@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    FormsModule, 
    BrowserModule, 
    AngularFireModule.initializeApp(firebaseConfig), //<---- 
    AngularFireDatabaseModule 
    ], 
    providers: [AngularFireModule], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

...そして私はfirebaseに話を約5サービスを持って気づきました。それは、アプリケーションがfirebaseを少なくとも5回、各サービスに1回初期化することを意味します。大規模なプロジェクトでファイアベースにアクセスする最も良い方法は何ですか?

+1

ファイアベースを初期化する共有モジュールを作成するだけで、他のすべてのモジュールが共有モジュールに依存することができます – devqon

答えて

0

私はいくつかのオプションを学びました。それをAppModuleに入れると、他のサブモジュールもそれを使うことができます。また、あるサービスで初期化し、他のサービスからそのサービスを使用すると、初期化コードが1つの場所にあることになります。角度のドキュメントから

AngularJSのサービスは以下のとおりです。

怠惰インスタンス化 - アプリケーションコンポーネントは、それに依存する場合AngularJSは、サービスをインスタンス化します。

シングルトン - サービスに依存する各コンポーネントは、サービスファクトリによって生成された単一インスタンスへの参照を取得します。

関連する問題