0

Ich habe ein Projekt mit mehreren Modulen und Komponenten. Momentan initialisiere ich AngularFireModule in jedem Modul, so dass ich die Datenbank-/Authentifizierungsinfos in Komponenten in diesem Modul verwenden kann. Ich habe das Gefühl, dass es nicht notwendig ist, AngularFireModule so oft zu initialisieren und dass ich etwas nicht verstehe.AngularFireModule für die gesamte angularJs-Anwendung

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

Ich dachte über einen Service, der AngularFireModule und alle Module/Komponenten INiTS können den Service nutzen ... dann bemerkte ich, dass ich über 5 Dienste haben, die Feuerbasis sprechen. Das würde bedeuten, dass die Anwendung den Firebase mindestens fünf Mal initialisiert, einen pro Dienst. Wie kann man in großen Projekten am besten auf Firebase zugreifen?

+1

Sie können einfach ein freigegebenes Modul erstellen, das Ihre Firebase initialisiert, dann können alle Ihre anderen Module nur eine Abhängigkeit von Ihrem freigegebenen Modul legen – devqon

Antwort

0

Ich habe ein paar Optionen gelernt. Wenn es in AppModule vorhanden ist, können andere Submodule es ebenfalls verwenden. Wenn es in einem Dienst initialisiert wird und dieser Dienst von anderen Diensten verwendet wird, würde dies dazu führen, dass der Initialisierungscode an einer Stelle ist.

von Winkel docs:

AngularJS Dienstleistungen sind:

Träge instanziiert - AngularJS instanziiert nur einen Dienst, wenn eine Anwendungskomponente davon abhängt.

Singletons - Jede von einem Service abhängige Komponente erhält einen Verweis auf die einzelne Instanz, die von der Service Factory generiert wird.

Verwandte Themen