(
@Inject(FIREBASE_OPTIONS) options: FirebaseOptions,
@Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,
@Optional() @Inject(URL) databaseURL: string | null,
// eslint-disable-next-line @typescript-eslint/ban-types
@Inject(PLATFORM_ID) platformId: Object,
zone: NgZone,
public schedulers: ɵAngularFireSchedulers,
@Optional() @Inject(USE_EMULATOR) _useEmulator: any, // tuple isn't working here
@Optional() auth: AngularFireAuth,
@Optional() @Inject(USE_AUTH_EMULATOR) useAuthEmulator: any,
@Optional() @Inject(AUTH_SETTINGS) authSettings: any, // can't use firebase.auth.AuthSettings here
@Optional() @Inject(TENANT_ID) tenantId: string | null,
@Optional() @Inject(LANGUAGE_CODE) languageCode: string | null,
@Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null,
@Optional() @Inject(PERSISTENCE) persistence: string | null,
@Optional() _appCheckInstances: AppCheckInstances,
)
| 34 | private readonly injector = inject(EnvironmentInjector); |
| 35 | |
| 36 | constructor( |
| 37 | @Inject(FIREBASE_OPTIONS) options: FirebaseOptions, |
| 38 | @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined, |
| 39 | @Optional() @Inject(URL) databaseURL: string | null, |
| 40 | // eslint-disable-next-line @typescript-eslint/ban-types |
| 41 | @Inject(PLATFORM_ID) platformId: Object, |
| 42 | zone: NgZone, |
| 43 | public schedulers: ɵAngularFireSchedulers, |
| 44 | @Optional() @Inject(USE_EMULATOR) _useEmulator: any, // tuple isn't working here |
| 45 | @Optional() auth: AngularFireAuth, |
| 46 | @Optional() @Inject(USE_AUTH_EMULATOR) useAuthEmulator: any, |
| 47 | @Optional() @Inject(AUTH_SETTINGS) authSettings: any, // can't use firebase.auth.AuthSettings here |
| 48 | @Optional() @Inject(TENANT_ID) tenantId: string | null, |
| 49 | @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null, |
| 50 | @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null, |
| 51 | @Optional() @Inject(PERSISTENCE) persistence: string | null, |
| 52 | @Optional() _appCheckInstances: AppCheckInstances, |
| 53 | ) { |
| 54 | |
| 55 | const useEmulator: UseEmulatorArguments | null = _useEmulator; |
| 56 | const app = ɵfirebaseAppFactory(options, zone, name); |
| 57 | |
| 58 | if (auth) { |
| 59 | ɵauthFactory(app, zone, useAuthEmulator, tenantId, languageCode, useDeviceLanguage, authSettings, persistence); |
| 60 | } |
| 61 | |
| 62 | this.database = ɵcacheInstance(`${app.name}.database.${databaseURL}`, 'AngularFireDatabase', app.name, () => { |
| 63 | const database = zone.runOutsideAngular(() => app.database(databaseURL || undefined)); |
| 64 | if (useEmulator) { |
| 65 | database.useEmulator(...useEmulator); |
| 66 | } |
| 67 | return database; |
| 68 | }, [useEmulator]); |
| 69 | } |
| 70 | |
| 71 | list<T>(pathOrRef: PathReference, queryFn?: QueryFn): AngularFireList<T> { |
| 72 | const ref = inject(NgZone).runOutsideAngular(() => getRef(this.database, pathOrRef)); |
nothing calls this directly
no test coverage detected