0

J'ai un projet avec plusieurs modules et composants. Actuellement, j'initialise AngularFireModule dans chaque module afin de pouvoir utiliser les informations de base de données/d'authentification Firebase dans les composants de ce module. J'ai l'impression qu'il n'est pas nécessaire d'initialiser AngularFireModule autant de fois et que je ne comprends pas quelque chose.AngularFireModule partagé sur toute l'application angularjs

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

Je pensais à la création d'un service qui INITs AngularFireModule et tous les modules/composants peuvent utiliser le service ... je remarqué que j'ai environ 5 services qui parlent à firebase. Cela signifierait que l'application initialise Firebase au moins 5 fois, une dans chaque service. Quel est le meilleur moyen d'avoir accès à Firebase dans les grands projets?

+1

Vous pouvez simplement créer un module partagé qui initialise votre base de feu, alors tous vos autres modules peuvent simplement dépendre de votre module partagé – devqon

Répondre

0

J'ai appris quelques options. L'avoir dans AppModule permettrait aux autres sous-modules de l'utiliser aussi. De plus, le fait de l'initialiser dans un service et d'utiliser ce service à partir de n'importe quel autre service ferait en sorte que le code d'initialisation se trouve à un endroit.

de docs angulaires:

AngularJS services sont:

paresseusement instanciées - AngularJS seulement instancie un service lorsqu'un composant d'application dépend.

Singletons - Chaque composant dépendant d'un service obtient une référence à l'instance unique générée par la fabrique de services.