11import {
2+ EnvironmentProviders ,
23 Inject ,
34 InjectionToken ,
45 Injector ,
5- ModuleWithProviders ,
66 VERSION as NG_VERSION ,
77 NgModule ,
88 NgZone ,
99 Optional ,
1010 PLATFORM_ID ,
11+ makeEnvironmentProviders ,
1112} from '@angular/core' ;
1213import { VERSION , ɵAngularFireSchedulers } from '@angular/fire' ;
1314import { FirebaseApp as IFirebaseApp , getApp , registerVersion } from 'firebase/app' ;
@@ -44,6 +45,12 @@ const FIREBASE_APPS_PROVIDER = {
4445
4546export function firebaseAppFactory ( fn : ( injector : Injector ) => IFirebaseApp ) {
4647 return ( zone : NgZone , injector : Injector ) => {
48+ const platformId = injector . get ( PLATFORM_ID ) ;
49+ registerVersion ( 'angularfire' , VERSION . full , 'core' ) ;
50+ registerVersion ( 'angularfire' , VERSION . full , 'app' ) ;
51+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
52+ registerVersion ( 'angular' , NG_VERSION . full , platformId . toString ( ) ) ;
53+
4754 const app = zone . runOutsideAngular ( ( ) => fn ( injector ) ) ;
4855 return new FirebaseApp ( app ) ;
4956 } ;
@@ -68,10 +75,11 @@ export class FirebaseAppModule {
6875// Calling initializeApp({ ... }, 'name') multiple times will add more FirebaseApps into the FIREBASE_APPS
6976// injection scope. This allows developers to more easily work with multiple Firebase Applications. Downside
7077// is that DI for app name and options doesn't really make sense anymore.
71- export function provideFirebaseApp ( fn : ( injector : Injector ) => IFirebaseApp , ...deps : any [ ] ) : ModuleWithProviders < FirebaseAppModule > {
72- return {
73- ngModule : FirebaseAppModule ,
74- providers : [ {
78+ export function provideFirebaseApp ( fn : ( injector : Injector ) => IFirebaseApp , ...deps : any [ ] ) : EnvironmentProviders {
79+ return makeEnvironmentProviders ( [
80+ DEFAULT_FIREBASE_APP_PROVIDER ,
81+ FIREBASE_APPS_PROVIDER ,
82+ {
7583 provide : PROVIDED_FIREBASE_APPS ,
7684 useFactory : firebaseAppFactory ( fn ) ,
7785 multi : true ,
@@ -81,6 +89,6 @@ export function provideFirebaseApp(fn: (injector: Injector) => IFirebaseApp, ...
8189 ɵAngularFireSchedulers ,
8290 ...deps ,
8391 ] ,
84- } ] ,
85- } ;
92+ }
93+ ] )
8694}
0 commit comments