MCPcopy
hub / github.com/angular/angularfire / constructor

Method constructor

src/compat/database/database.ts:36–69  ·  view source on GitHub ↗
(
    @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,
  )

Source from the content-addressed store, hash-verified

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));

Callers

nothing calls this directly

Calls 3

ɵfirebaseAppFactoryFunction · 0.90
ɵauthFactoryFunction · 0.90
ɵcacheInstanceFunction · 0.90

Tested by

no test coverage detected