@angular/fire 19.0.0-canary.6b1b0ca → 19.0.0-canary.8ce95bf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -28
- package/compat/auth/auth.d.ts +1 -0
- package/compat/database/database.d.ts +1 -0
- package/compat/database/list/create-reference.d.ts +2 -1
- package/compat/database/object/create-reference.d.ts +2 -1
- package/compat/firestore/collection/collection.d.ts +1 -0
- package/compat/firestore/collection-group/collection-group.d.ts +1 -0
- package/compat/firestore/document/document.d.ts +1 -0
- package/compat/firestore/firestore.d.ts +1 -0
- package/compat/remote-config/remote-config.d.ts +1 -0
- package/compat/storage/ref.d.ts +2 -1
- package/compat/storage/storage.d.ts +1 -0
- package/docs/zones.md +21 -0
- package/fesm2022/angular-fire-auth.mjs +1 -1
- package/fesm2022/angular-fire-auth.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-auth.mjs +3 -2
- package/fesm2022/angular-fire-compat-auth.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-database.mjs +12 -11
- package/fesm2022/angular-fire-compat-database.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-firestore.mjs +18 -14
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-remote-config.mjs +3 -2
- package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-storage.mjs +9 -8
- package/fesm2022/angular-fire-compat-storage.mjs.map +1 -1
- package/fesm2022/angular-fire.mjs +75 -15
- package/fesm2022/angular-fire.mjs.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -33,9 +33,9 @@ export const appConfig: ApplicationConfig = {
|
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
```ts
|
|
36
|
+
import { AsyncPipe } from '@angular/common';
|
|
36
37
|
import { inject } from '@angular/core';
|
|
37
38
|
import { Firestore, collectionData, collection } from '@angular/fire/firestore';
|
|
38
|
-
import { Observable } from 'rxjs';
|
|
39
39
|
|
|
40
40
|
interface Item {
|
|
41
41
|
name: string,
|
|
@@ -44,7 +44,6 @@ interface Item {
|
|
|
44
44
|
|
|
45
45
|
@Component({
|
|
46
46
|
selector: 'app-root',
|
|
47
|
-
standalone: true,
|
|
48
47
|
template: `
|
|
49
48
|
<ul>
|
|
50
49
|
@for (item of (item$ | async); track item) {
|
|
@@ -53,30 +52,16 @@ interface Item {
|
|
|
53
52
|
</li>
|
|
54
53
|
}
|
|
55
54
|
</ul>
|
|
56
|
-
|
|
55
|
+
`,
|
|
56
|
+
imports: [AsyncPipe]
|
|
57
57
|
})
|
|
58
58
|
export class AppComponent {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
constructor() {
|
|
63
|
-
const itemCollection = collection(this.firestore, 'items');
|
|
64
|
-
this.item$ = collectionData<Item>(itemCollection);
|
|
65
|
-
}
|
|
59
|
+
firestore = inject(Firestore);
|
|
60
|
+
itemCollection = collection(this.firestore, 'items');
|
|
61
|
+
item$ = collectionData<Item>(itemCollection);
|
|
66
62
|
}
|
|
67
63
|
```
|
|
68
64
|
|
|
69
|
-
### Polyfills
|
|
70
|
-
|
|
71
|
-
Neither AngularFire nor Firebase ship with polyfills. To have compatibility across a wide-range of environments, we suggest the following polyfills be added to your application:
|
|
72
|
-
|
|
73
|
-
| API | Environments | Suggested Polyfill | License |
|
|
74
|
-
|-----|--------------|--------------------|---------|
|
|
75
|
-
| Various ES5+ features | Safari < 10 | [`core-js/stable`](https://github.com/zloirock/core-js#readme) | MIT |
|
|
76
|
-
| `globalThis` | [Chrome < 71<br>Safari < 12.1<br>iOS < 12.2<br>Node < 12](https://caniuse.com/mdn-javascript_builtins_globalthis) | [`globalThis`](https://github.com/es-shims/globalThis#readme) | MIT |
|
|
77
|
-
| `Proxy` | [Safari < 10](https://caniuse.com/proxy) | [`proxy-polyfill`](https://github.com/GoogleChrome/proxy-polyfill#readme) | Apache 2.0 |
|
|
78
|
-
| `fetch` | [Safari < 10.1<br>iOS < 10.3](https://caniuse.com/fetch) | [`cross-fetch`](https://github.com/lquixada/cross-fetch#readme) | MIT |
|
|
79
|
-
|
|
80
65
|
## Resources
|
|
81
66
|
|
|
82
67
|
[Quickstart](docs/install-and-setup.md) - Get your first application up and running by following our quickstart guide.
|
|
@@ -85,15 +70,11 @@ Neither AngularFire nor Firebase ship with polyfills. To have compatibility acro
|
|
|
85
70
|
|
|
86
71
|
[Stackblitz Template](https://stackblitz.com/edit/angular-fire-start) - Remember to set your Firebase configuration in `app/app.module.ts`.
|
|
87
72
|
|
|
88
|
-
[Upgrading
|
|
89
|
-
|
|
90
|
-
### Sample apps
|
|
73
|
+
[Upgrading from v6.0? Check out our guide.](docs/version-7-upgrade.md)
|
|
91
74
|
|
|
92
|
-
|
|
75
|
+
### Sample app
|
|
93
76
|
|
|
94
|
-
|
|
95
|
-
1. [`samples/modular`](samples/modular) a kitchen sink application that demonstrates the new tree-shakable API
|
|
96
|
-
1. [`samples/advanced`](samples/advanced) the same app as `samples/modular` but demonstrates more advanced concepts such as Angular Universal state-transfer, dynamically importing Firebase feature modules, and Firestore data bundling.
|
|
77
|
+
The [`sample`](sample) folder contains a kitchen sink application that demonstrates use of the "modular" API, in a zoneless server-rendered application, with all the bells and whistles.
|
|
97
78
|
|
|
98
79
|
### Having troubles?
|
|
99
80
|
|
package/compat/auth/auth.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare const USE_DEVICE_LANGUAGE: InjectionToken<boolean>;
|
|
|
18
18
|
export declare const PERSISTENCE: InjectionToken<string>;
|
|
19
19
|
export declare const ɵauthFactory: (app: FirebaseApp, zone: NgZone, useEmulator: UseEmulatorArguments | null, tenantId: string, languageCode: string | null, useDeviceLanguage: boolean | null, settings: firebase.auth.AuthSettings | null, persistence: string | null) => firebase.auth.Auth;
|
|
20
20
|
export declare class AngularFireAuth {
|
|
21
|
+
private readonly injector;
|
|
21
22
|
/**
|
|
22
23
|
* Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out
|
|
23
24
|
*/
|
|
@@ -15,6 +15,7 @@ export declare const USE_EMULATOR: InjectionToken<[host: string, port: number, o
|
|
|
15
15
|
export declare class AngularFireDatabase {
|
|
16
16
|
schedulers: ɵAngularFireSchedulers;
|
|
17
17
|
readonly database: firebase.database.Database;
|
|
18
|
+
private readonly injector;
|
|
18
19
|
constructor(options: FirebaseOptions, name: string | null | undefined, databaseURL: string | null, platformId: Object, zone: NgZone, schedulers: ɵAngularFireSchedulers, _useEmulator: any, // tuple isn't working here
|
|
19
20
|
auth: AngularFireAuth, useAuthEmulator: any, authSettings: any, // can't use firebase.auth.AuthSettings here
|
|
20
21
|
tenantId: string | null, languageCode: string | null, useDeviceLanguage: boolean | null, persistence: string | null, _appCheckInstances: AppCheckInstances);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
1
2
|
import { AngularFireDatabase } from '../database';
|
|
2
3
|
import { AngularFireList, DatabaseQuery } from '../interfaces';
|
|
3
|
-
export declare function createListReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase): AngularFireList<T>;
|
|
4
|
+
export declare function createListReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase, injector?: Injector): AngularFireList<T>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
1
2
|
import { AngularFireDatabase } from '../database';
|
|
2
3
|
import { AngularFireObject, DatabaseQuery } from '../interfaces';
|
|
3
|
-
export declare function createObjectReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase): AngularFireObject<T>;
|
|
4
|
+
export declare function createObjectReference<T = any>(query: DatabaseQuery, afDatabase: AngularFireDatabase, injector?: Injector): AngularFireObject<T>;
|
|
@@ -31,6 +31,7 @@ export declare class AngularFirestoreCollection<T = DocumentData> {
|
|
|
31
31
|
readonly ref: CollectionReference<T>;
|
|
32
32
|
private readonly query;
|
|
33
33
|
private readonly afs;
|
|
34
|
+
private readonly injector;
|
|
34
35
|
/**
|
|
35
36
|
* The constructor takes in a CollectionReference and Query to provide wrapper methods
|
|
36
37
|
* for data operations and data streaming.
|
|
@@ -23,6 +23,7 @@ import { DocumentChangeAction, DocumentChangeType, DocumentData, Query } from '.
|
|
|
23
23
|
export declare class AngularFirestoreCollectionGroup<T = DocumentData> {
|
|
24
24
|
private readonly query;
|
|
25
25
|
private readonly afs;
|
|
26
|
+
private readonly injector;
|
|
26
27
|
/**
|
|
27
28
|
* The constructor takes in a CollectionGroupQuery to provide wrapper methods
|
|
28
29
|
* for data operations and data streaming.
|
|
@@ -28,6 +28,7 @@ import { Action, DocumentData, DocumentReference, DocumentSnapshot, QueryFn, Set
|
|
|
28
28
|
export declare class AngularFirestoreDocument<T = DocumentData> {
|
|
29
29
|
ref: DocumentReference<T>;
|
|
30
30
|
private afs;
|
|
31
|
+
private readonly injector;
|
|
31
32
|
/**
|
|
32
33
|
* The constructor takes in a DocumentReference to provide wrapper methods
|
|
33
34
|
* for data operations, data streaming, and Symbol.observable.
|
|
@@ -93,6 +93,7 @@ export declare class AngularFirestore {
|
|
|
93
93
|
schedulers: ɵAngularFireSchedulers;
|
|
94
94
|
readonly firestore: firebase.firestore.Firestore;
|
|
95
95
|
readonly persistenceEnabled$: Observable<boolean>;
|
|
96
|
+
private readonly ngZone;
|
|
96
97
|
/**
|
|
97
98
|
* Each Feature of AngularFire has a FirebaseApp injected. This way we
|
|
98
99
|
* don't rely on the main Firebase App instance and we can create named
|
|
@@ -34,6 +34,7 @@ export declare class AngularFireRemoteConfig {
|
|
|
34
34
|
readonly numbers: Observable<Record<string, number | undefined>> & Record<string, Observable<number>>;
|
|
35
35
|
readonly booleans: Observable<Record<string, boolean | undefined>> & Record<string, Observable<boolean>>;
|
|
36
36
|
readonly strings: Observable<Record<string, string | undefined>> & Record<string, Observable<string | undefined>>;
|
|
37
|
+
private readonly injector;
|
|
37
38
|
constructor(options: FirebaseOptions, name: string | null | undefined, settings: Settings | null, defaultConfig: ConfigTemplate | null, zone: NgZone, schedulers: ɵAngularFireSchedulers, platformId: Object);
|
|
38
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<AngularFireRemoteConfig, [null, { optional: true; }, { optional: true; }, { optional: true; }, null, null, null]>;
|
|
39
40
|
static ɵprov: i0.ɵɵInjectableDeclaration<AngularFireRemoteConfig>;
|
package/compat/storage/ref.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
1
2
|
import { Observable } from 'rxjs';
|
|
2
3
|
import { ListOptions, ListResult, Reference, SettableMetadata, UploadMetadata } from './interfaces';
|
|
3
4
|
import { AngularFireUploadTask } from './task';
|
|
@@ -16,4 +17,4 @@ export interface AngularFireStorageReference {
|
|
|
16
17
|
* Create an AngularFire wrapped Storage Reference. This object
|
|
17
18
|
* creates observable methods from promise based methods.
|
|
18
19
|
*/
|
|
19
|
-
export declare function createStorageRef(ref: Reference): AngularFireStorageReference;
|
|
20
|
+
export declare function createStorageRef(ref: Reference, injector?: Injector): AngularFireStorageReference;
|
|
@@ -21,6 +21,7 @@ export declare const USE_EMULATOR: InjectionToken<[host: string, port: number, o
|
|
|
21
21
|
*/
|
|
22
22
|
export declare class AngularFireStorage {
|
|
23
23
|
readonly storage: firebase.storage.Storage;
|
|
24
|
+
private readonly injector;
|
|
24
25
|
constructor(options: FirebaseOptions, name: string | null | undefined, storageBucket: string | null, platformId: Object, zone: NgZone, schedulers: ɵAngularFireSchedulers, maxUploadRetryTime: any, maxOperationRetryTime: any, _useEmulator: any, _appCheckInstances: AppCheckInstances);
|
|
25
26
|
ref(path: string): import("./ref").AngularFireStorageReference;
|
|
26
27
|
refFromURL(path: string): import("./ref").AngularFireStorageReference;
|
package/docs/zones.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<small>
|
|
2
|
+
<a href="https://github.com/angular/angularfire">AngularFire</a> ❱ <a href="../README.md#developer-guide">Developer Guide</a> ❱ Zone Wrappers
|
|
3
|
+
</small>
|
|
4
|
+
|
|
5
|
+
# Zone Wrappers
|
|
6
|
+
|
|
7
|
+
AngularFire wraps the [framework agnostic Firebase JS SDK](https://github.com/firebase/firebase-js-sdk) and [RxFire](https://github.com/firebaseextended/rxfire) to ensure proper functionality in Zone and Zoneless applications alike.
|
|
8
|
+
|
|
9
|
+
These wrappers ensure Firebase APIs are called outside of the Angular zone. This isolates side-effects such as timers so that they do not destabilize your application.
|
|
10
|
+
|
|
11
|
+
Observables, Promise-based APIs, and those with callbacks will purposely destabilize your application until a initial value is returned, this ensures that server-side rendering (SSR) and static site generation (SSG/pre-rendering) wait for data before rendering the page's HTML.
|
|
12
|
+
|
|
13
|
+
## Consequences of not Zone wrapping
|
|
14
|
+
|
|
15
|
+
When using a Firebase or RxFire API without importing from AngularFire or if AngularFire APIs are used outside of an injection context you _may_ experience instability.
|
|
16
|
+
|
|
17
|
+
instability can be difficult to track down ([see Resolving zone pollution in the Angular docs](https://angular.dev/best-practices/zone-pollution)). To help with debugging, AngularFire emits warnings when it is unable to Zone wrap an API while in dev-mode. **Often these messages can be safely ignored** but we'd rather be verbose.
|
|
18
|
+
|
|
19
|
+
When an application is unstable change-detection, two-way binding, and rehydration may not work as expected—leading to both subtle and non-subtle bugs in your application. Further, server-side rendering (SSR) and static site generation (SSG/pre-rendering) may timeout or render a blank page.
|
|
20
|
+
|
|
21
|
+
There are a number of situations where AngularFire's Zone wrapping is inconsequential such adding/deleting/updating a document in response to user-input, signing a user in, calling a Cloud Function, etc. So long as no long-lived side-effects are kicked off, your application should be ok. Most Promise based APIs are fairly safe without zone wrapping.
|
|
@@ -95,7 +95,7 @@ const user = _zoneWrap(user$1, true);
|
|
|
95
95
|
|
|
96
96
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
97
97
|
const applyActionCode = _zoneWrap(applyActionCode$1, true);
|
|
98
|
-
const beforeAuthStateChanged = _zoneWrap(beforeAuthStateChanged$1,
|
|
98
|
+
const beforeAuthStateChanged = _zoneWrap(beforeAuthStateChanged$1, false);
|
|
99
99
|
const checkActionCode = _zoneWrap(checkActionCode$1, true);
|
|
100
100
|
const confirmPasswordReset = _zoneWrap(confirmPasswordReset$1, true);
|
|
101
101
|
const connectAuthEmulator = _zoneWrap(connectAuthEmulator$1, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-auth.mjs","sources":["../../../src/auth/auth.ts","../../../src/auth/auth.module.ts","../../../src/auth/rxfire.ts","../../../src/auth/firebase.ts","../../../src/auth/angular-fire-auth.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport const AUTH_PROVIDER_NAME = 'auth';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Auth extends FirebaseAuth {}\n\nexport class Auth {\n constructor(auth: FirebaseAuth) {\n return auth;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AuthInstances extends Array<FirebaseAuth> {}\n\nexport class AuthInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME);\n }\n}\n\nexport const authInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { AUTH_PROVIDER_NAME, Auth, AuthInstances } from './auth';\n\nexport const PROVIDED_AUTH_INSTANCES = new InjectionToken<Auth[]>('angularfire2.auth-instances');\n\nexport function defaultAuthInstanceFactory(provided: FirebaseAuth[]|undefined, defaultApp: FirebaseApp) {\n const defaultAuth = ɵgetDefaultInstanceOf<FirebaseAuth>(AUTH_PROVIDER_NAME, provided, defaultApp);\n return defaultAuth && new Auth(defaultAuth);\n}\n\nexport function authInstanceFactory(fn: (injector: Injector) => FirebaseAuth) {\n return (zone: NgZone, injector: Injector) => {\n const auth = zone.runOutsideAngular(() => fn(injector));\n return new Auth(auth);\n };\n}\n\nconst AUTH_INSTANCES_PROVIDER = {\n provide: AuthInstances,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n ]\n};\n\nconst DEFAULT_AUTH_INSTANCE_PROVIDER = {\n provide: Auth,\n useFactory: defaultAuthInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n ]\n})\nexport class AuthModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth');\n }\n}\n\nexport function provideAuth(fn: (injector: Injector) => FirebaseAuth, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'auth');\n return makeEnvironmentProviders([\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_AUTH_INSTANCES,\n useFactory: authInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n authState as _authState,\n idToken as _idToken,\n user as _user\n} from 'rxfire/auth';\n\nexport const authState = ɵzoneWrap(_authState, true);\nexport const idToken = ɵzoneWrap(_idToken, true);\nexport const user = ɵzoneWrap(_user, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/auth';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n applyActionCode as _applyActionCode,\n beforeAuthStateChanged as _beforeAuthStateChanged,\n checkActionCode as _checkActionCode,\n confirmPasswordReset as _confirmPasswordReset,\n connectAuthEmulator as _connectAuthEmulator,\n createUserWithEmailAndPassword as _createUserWithEmailAndPassword,\n deleteUser as _deleteUser,\n fetchSignInMethodsForEmail as _fetchSignInMethodsForEmail,\n getAdditionalUserInfo as _getAdditionalUserInfo,\n getAuth as _getAuth,\n getIdToken as _getIdToken,\n getIdTokenResult as _getIdTokenResult,\n getMultiFactorResolver as _getMultiFactorResolver,\n getRedirectResult as _getRedirectResult,\n initializeAuth as _initializeAuth,\n initializeRecaptchaConfig as _initializeRecaptchaConfig,\n isSignInWithEmailLink as _isSignInWithEmailLink,\n linkWithCredential as _linkWithCredential,\n linkWithPhoneNumber as _linkWithPhoneNumber,\n linkWithPopup as _linkWithPopup,\n linkWithRedirect as _linkWithRedirect,\n multiFactor as _multiFactor,\n onAuthStateChanged as _onAuthStateChanged,\n onIdTokenChanged as _onIdTokenChanged,\n parseActionCodeURL as _parseActionCodeURL,\n reauthenticateWithCredential as _reauthenticateWithCredential,\n reauthenticateWithPhoneNumber as _reauthenticateWithPhoneNumber,\n reauthenticateWithPopup as _reauthenticateWithPopup,\n reauthenticateWithRedirect as _reauthenticateWithRedirect,\n reload as _reload,\n revokeAccessToken as _revokeAccessToken,\n sendEmailVerification as _sendEmailVerification,\n sendPasswordResetEmail as _sendPasswordResetEmail,\n sendSignInLinkToEmail as _sendSignInLinkToEmail,\n setPersistence as _setPersistence,\n signInAnonymously as _signInAnonymously,\n signInWithCredential as _signInWithCredential,\n signInWithCustomToken as _signInWithCustomToken,\n signInWithEmailAndPassword as _signInWithEmailAndPassword,\n signInWithEmailLink as _signInWithEmailLink,\n signInWithPhoneNumber as _signInWithPhoneNumber,\n signInWithPopup as _signInWithPopup,\n signInWithRedirect as _signInWithRedirect,\n signOut as _signOut,\n unlink as _unlink,\n updateCurrentUser as _updateCurrentUser,\n updateEmail as _updateEmail,\n updatePassword as _updatePassword,\n updatePhoneNumber as _updatePhoneNumber,\n updateProfile as _updateProfile,\n useDeviceLanguage as _useDeviceLanguage,\n validatePassword as _validatePassword,\n verifyBeforeUpdateEmail as _verifyBeforeUpdateEmail,\n verifyPasswordResetCode as _verifyPasswordResetCode\n} from 'firebase/auth';\n\nexport const applyActionCode = ɵzoneWrap(_applyActionCode, true);\nexport const beforeAuthStateChanged = ɵzoneWrap(_beforeAuthStateChanged, true);\nexport const checkActionCode = ɵzoneWrap(_checkActionCode, true);\nexport const confirmPasswordReset = ɵzoneWrap(_confirmPasswordReset, true);\nexport const connectAuthEmulator = ɵzoneWrap(_connectAuthEmulator, true);\nexport const createUserWithEmailAndPassword = ɵzoneWrap(_createUserWithEmailAndPassword, true);\nexport const deleteUser = ɵzoneWrap(_deleteUser, true);\nexport const fetchSignInMethodsForEmail = ɵzoneWrap(_fetchSignInMethodsForEmail, true);\nexport const getAdditionalUserInfo = ɵzoneWrap(_getAdditionalUserInfo, true);\nexport const getAuth = ɵzoneWrap(_getAuth, true);\nexport const getIdToken = ɵzoneWrap(_getIdToken, true);\nexport const getIdTokenResult = ɵzoneWrap(_getIdTokenResult, true);\nexport const getMultiFactorResolver = ɵzoneWrap(_getMultiFactorResolver, true);\nexport const getRedirectResult = ɵzoneWrap(_getRedirectResult, true);\nexport const initializeAuth = ɵzoneWrap(_initializeAuth, true);\nexport const initializeRecaptchaConfig = ɵzoneWrap(_initializeRecaptchaConfig, true);\nexport const isSignInWithEmailLink = ɵzoneWrap(_isSignInWithEmailLink, true);\nexport const linkWithCredential = ɵzoneWrap(_linkWithCredential, true);\nexport const linkWithPhoneNumber = ɵzoneWrap(_linkWithPhoneNumber, true);\nexport const linkWithPopup = ɵzoneWrap(_linkWithPopup, true);\nexport const linkWithRedirect = ɵzoneWrap(_linkWithRedirect, true);\nexport const multiFactor = ɵzoneWrap(_multiFactor, true);\nexport const onAuthStateChanged = ɵzoneWrap(_onAuthStateChanged, true);\nexport const onIdTokenChanged = ɵzoneWrap(_onIdTokenChanged, true);\nexport const parseActionCodeURL = ɵzoneWrap(_parseActionCodeURL, true);\nexport const reauthenticateWithCredential = ɵzoneWrap(_reauthenticateWithCredential, true);\nexport const reauthenticateWithPhoneNumber = ɵzoneWrap(_reauthenticateWithPhoneNumber, true);\nexport const reauthenticateWithPopup = ɵzoneWrap(_reauthenticateWithPopup, true);\nexport const reauthenticateWithRedirect = ɵzoneWrap(_reauthenticateWithRedirect, true);\nexport const reload = ɵzoneWrap(_reload, true);\nexport const revokeAccessToken = ɵzoneWrap(_revokeAccessToken, true);\nexport const sendEmailVerification = ɵzoneWrap(_sendEmailVerification, true);\nexport const sendPasswordResetEmail = ɵzoneWrap(_sendPasswordResetEmail, true);\nexport const sendSignInLinkToEmail = ɵzoneWrap(_sendSignInLinkToEmail, true);\nexport const setPersistence = ɵzoneWrap(_setPersistence, true);\nexport const signInAnonymously = ɵzoneWrap(_signInAnonymously, true);\nexport const signInWithCredential = ɵzoneWrap(_signInWithCredential, true);\nexport const signInWithCustomToken = ɵzoneWrap(_signInWithCustomToken, true);\nexport const signInWithEmailAndPassword = ɵzoneWrap(_signInWithEmailAndPassword, true);\nexport const signInWithEmailLink = ɵzoneWrap(_signInWithEmailLink, true);\nexport const signInWithPhoneNumber = ɵzoneWrap(_signInWithPhoneNumber, true);\nexport const signInWithPopup = ɵzoneWrap(_signInWithPopup, true);\nexport const signInWithRedirect = ɵzoneWrap(_signInWithRedirect, true);\nexport const signOut = ɵzoneWrap(_signOut, true);\nexport const unlink = ɵzoneWrap(_unlink, true);\nexport const updateCurrentUser = ɵzoneWrap(_updateCurrentUser, true);\nexport const updateEmail = ɵzoneWrap(_updateEmail, true);\nexport const updatePassword = ɵzoneWrap(_updatePassword, true);\nexport const updatePhoneNumber = ɵzoneWrap(_updatePhoneNumber, true);\nexport const updateProfile = ɵzoneWrap(_updateProfile, true);\nexport const useDeviceLanguage = ɵzoneWrap(_useDeviceLanguage, true);\nexport const validatePassword = ɵzoneWrap(_validatePassword, true);\nexport const verifyBeforeUpdateEmail = ɵzoneWrap(_verifyBeforeUpdateEmail, true);\nexport const verifyPasswordResetCode = ɵzoneWrap(_verifyPasswordResetCode, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_authState","_idToken","_user","_applyActionCode","_beforeAuthStateChanged","_checkActionCode","_confirmPasswordReset","_connectAuthEmulator","_createUserWithEmailAndPassword","_deleteUser","_fetchSignInMethodsForEmail","_getAdditionalUserInfo","_getAuth","_getIdToken","_getIdTokenResult","_getMultiFactorResolver","_getRedirectResult","_initializeAuth","_initializeRecaptchaConfig","_isSignInWithEmailLink","_linkWithCredential","_linkWithPhoneNumber","_linkWithPopup","_linkWithRedirect","_multiFactor","_onAuthStateChanged","_onIdTokenChanged","_parseActionCodeURL","_reauthenticateWithCredential","_reauthenticateWithPhoneNumber","_reauthenticateWithPopup","_reauthenticateWithRedirect","_reload","_revokeAccessToken","_sendEmailVerification","_sendPasswordResetEmail","_sendSignInLinkToEmail","_setPersistence","_signInAnonymously","_signInWithCredential","_signInWithCustomToken","_signInWithEmailAndPassword","_signInWithEmailLink","_signInWithPhoneNumber","_signInWithPopup","_signInWithRedirect","_signOut","_unlink","_updateCurrentUser","_updateEmail","_updatePassword","_updatePhoneNumber","_updateProfile","_useDeviceLanguage","_validatePassword","_verifyBeforeUpdateEmail","_verifyPasswordResetCode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-fire-auth.mjs","sources":["../../../src/auth/auth.ts","../../../src/auth/auth.module.ts","../../../src/auth/rxfire.ts","../../../src/auth/firebase.ts","../../../src/auth/angular-fire-auth.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport const AUTH_PROVIDER_NAME = 'auth';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Auth extends FirebaseAuth {}\n\nexport class Auth {\n constructor(auth: FirebaseAuth) {\n return auth;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AuthInstances extends Array<FirebaseAuth> {}\n\nexport class AuthInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME);\n }\n}\n\nexport const authInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { AUTH_PROVIDER_NAME, Auth, AuthInstances } from './auth';\n\nexport const PROVIDED_AUTH_INSTANCES = new InjectionToken<Auth[]>('angularfire2.auth-instances');\n\nexport function defaultAuthInstanceFactory(provided: FirebaseAuth[]|undefined, defaultApp: FirebaseApp) {\n const defaultAuth = ɵgetDefaultInstanceOf<FirebaseAuth>(AUTH_PROVIDER_NAME, provided, defaultApp);\n return defaultAuth && new Auth(defaultAuth);\n}\n\nexport function authInstanceFactory(fn: (injector: Injector) => FirebaseAuth) {\n return (zone: NgZone, injector: Injector) => {\n const auth = zone.runOutsideAngular(() => fn(injector));\n return new Auth(auth);\n };\n}\n\nconst AUTH_INSTANCES_PROVIDER = {\n provide: AuthInstances,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n ]\n};\n\nconst DEFAULT_AUTH_INSTANCE_PROVIDER = {\n provide: Auth,\n useFactory: defaultAuthInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n ]\n})\nexport class AuthModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth');\n }\n}\n\nexport function provideAuth(fn: (injector: Injector) => FirebaseAuth, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'auth');\n return makeEnvironmentProviders([\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_AUTH_INSTANCES,\n useFactory: authInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n authState as _authState,\n idToken as _idToken,\n user as _user\n} from 'rxfire/auth';\n\nexport const authState = ɵzoneWrap(_authState, true);\nexport const idToken = ɵzoneWrap(_idToken, true);\nexport const user = ɵzoneWrap(_user, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/auth';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n applyActionCode as _applyActionCode,\n beforeAuthStateChanged as _beforeAuthStateChanged,\n checkActionCode as _checkActionCode,\n confirmPasswordReset as _confirmPasswordReset,\n connectAuthEmulator as _connectAuthEmulator,\n createUserWithEmailAndPassword as _createUserWithEmailAndPassword,\n deleteUser as _deleteUser,\n fetchSignInMethodsForEmail as _fetchSignInMethodsForEmail,\n getAdditionalUserInfo as _getAdditionalUserInfo,\n getAuth as _getAuth,\n getIdToken as _getIdToken,\n getIdTokenResult as _getIdTokenResult,\n getMultiFactorResolver as _getMultiFactorResolver,\n getRedirectResult as _getRedirectResult,\n initializeAuth as _initializeAuth,\n initializeRecaptchaConfig as _initializeRecaptchaConfig,\n isSignInWithEmailLink as _isSignInWithEmailLink,\n linkWithCredential as _linkWithCredential,\n linkWithPhoneNumber as _linkWithPhoneNumber,\n linkWithPopup as _linkWithPopup,\n linkWithRedirect as _linkWithRedirect,\n multiFactor as _multiFactor,\n onAuthStateChanged as _onAuthStateChanged,\n onIdTokenChanged as _onIdTokenChanged,\n parseActionCodeURL as _parseActionCodeURL,\n reauthenticateWithCredential as _reauthenticateWithCredential,\n reauthenticateWithPhoneNumber as _reauthenticateWithPhoneNumber,\n reauthenticateWithPopup as _reauthenticateWithPopup,\n reauthenticateWithRedirect as _reauthenticateWithRedirect,\n reload as _reload,\n revokeAccessToken as _revokeAccessToken,\n sendEmailVerification as _sendEmailVerification,\n sendPasswordResetEmail as _sendPasswordResetEmail,\n sendSignInLinkToEmail as _sendSignInLinkToEmail,\n setPersistence as _setPersistence,\n signInAnonymously as _signInAnonymously,\n signInWithCredential as _signInWithCredential,\n signInWithCustomToken as _signInWithCustomToken,\n signInWithEmailAndPassword as _signInWithEmailAndPassword,\n signInWithEmailLink as _signInWithEmailLink,\n signInWithPhoneNumber as _signInWithPhoneNumber,\n signInWithPopup as _signInWithPopup,\n signInWithRedirect as _signInWithRedirect,\n signOut as _signOut,\n unlink as _unlink,\n updateCurrentUser as _updateCurrentUser,\n updateEmail as _updateEmail,\n updatePassword as _updatePassword,\n updatePhoneNumber as _updatePhoneNumber,\n updateProfile as _updateProfile,\n useDeviceLanguage as _useDeviceLanguage,\n validatePassword as _validatePassword,\n verifyBeforeUpdateEmail as _verifyBeforeUpdateEmail,\n verifyPasswordResetCode as _verifyPasswordResetCode\n} from 'firebase/auth';\n\nexport const applyActionCode = ɵzoneWrap(_applyActionCode, true);\nexport const beforeAuthStateChanged = ɵzoneWrap(_beforeAuthStateChanged, false);\nexport const checkActionCode = ɵzoneWrap(_checkActionCode, true);\nexport const confirmPasswordReset = ɵzoneWrap(_confirmPasswordReset, true);\nexport const connectAuthEmulator = ɵzoneWrap(_connectAuthEmulator, true);\nexport const createUserWithEmailAndPassword = ɵzoneWrap(_createUserWithEmailAndPassword, true);\nexport const deleteUser = ɵzoneWrap(_deleteUser, true);\nexport const fetchSignInMethodsForEmail = ɵzoneWrap(_fetchSignInMethodsForEmail, true);\nexport const getAdditionalUserInfo = ɵzoneWrap(_getAdditionalUserInfo, true);\nexport const getAuth = ɵzoneWrap(_getAuth, true);\nexport const getIdToken = ɵzoneWrap(_getIdToken, true);\nexport const getIdTokenResult = ɵzoneWrap(_getIdTokenResult, true);\nexport const getMultiFactorResolver = ɵzoneWrap(_getMultiFactorResolver, true);\nexport const getRedirectResult = ɵzoneWrap(_getRedirectResult, true);\nexport const initializeAuth = ɵzoneWrap(_initializeAuth, true);\nexport const initializeRecaptchaConfig = ɵzoneWrap(_initializeRecaptchaConfig, true);\nexport const isSignInWithEmailLink = ɵzoneWrap(_isSignInWithEmailLink, true);\nexport const linkWithCredential = ɵzoneWrap(_linkWithCredential, true);\nexport const linkWithPhoneNumber = ɵzoneWrap(_linkWithPhoneNumber, true);\nexport const linkWithPopup = ɵzoneWrap(_linkWithPopup, true);\nexport const linkWithRedirect = ɵzoneWrap(_linkWithRedirect, true);\nexport const multiFactor = ɵzoneWrap(_multiFactor, true);\nexport const onAuthStateChanged = ɵzoneWrap(_onAuthStateChanged, true);\nexport const onIdTokenChanged = ɵzoneWrap(_onIdTokenChanged, true);\nexport const parseActionCodeURL = ɵzoneWrap(_parseActionCodeURL, true);\nexport const reauthenticateWithCredential = ɵzoneWrap(_reauthenticateWithCredential, true);\nexport const reauthenticateWithPhoneNumber = ɵzoneWrap(_reauthenticateWithPhoneNumber, true);\nexport const reauthenticateWithPopup = ɵzoneWrap(_reauthenticateWithPopup, true);\nexport const reauthenticateWithRedirect = ɵzoneWrap(_reauthenticateWithRedirect, true);\nexport const reload = ɵzoneWrap(_reload, true);\nexport const revokeAccessToken = ɵzoneWrap(_revokeAccessToken, true);\nexport const sendEmailVerification = ɵzoneWrap(_sendEmailVerification, true);\nexport const sendPasswordResetEmail = ɵzoneWrap(_sendPasswordResetEmail, true);\nexport const sendSignInLinkToEmail = ɵzoneWrap(_sendSignInLinkToEmail, true);\nexport const setPersistence = ɵzoneWrap(_setPersistence, true);\nexport const signInAnonymously = ɵzoneWrap(_signInAnonymously, true);\nexport const signInWithCredential = ɵzoneWrap(_signInWithCredential, true);\nexport const signInWithCustomToken = ɵzoneWrap(_signInWithCustomToken, true);\nexport const signInWithEmailAndPassword = ɵzoneWrap(_signInWithEmailAndPassword, true);\nexport const signInWithEmailLink = ɵzoneWrap(_signInWithEmailLink, true);\nexport const signInWithPhoneNumber = ɵzoneWrap(_signInWithPhoneNumber, true);\nexport const signInWithPopup = ɵzoneWrap(_signInWithPopup, true);\nexport const signInWithRedirect = ɵzoneWrap(_signInWithRedirect, true);\nexport const signOut = ɵzoneWrap(_signOut, true);\nexport const unlink = ɵzoneWrap(_unlink, true);\nexport const updateCurrentUser = ɵzoneWrap(_updateCurrentUser, true);\nexport const updateEmail = ɵzoneWrap(_updateEmail, true);\nexport const updatePassword = ɵzoneWrap(_updatePassword, true);\nexport const updatePhoneNumber = ɵzoneWrap(_updatePhoneNumber, true);\nexport const updateProfile = ɵzoneWrap(_updateProfile, true);\nexport const useDeviceLanguage = ɵzoneWrap(_useDeviceLanguage, true);\nexport const validatePassword = ɵzoneWrap(_validatePassword, true);\nexport const verifyBeforeUpdateEmail = ɵzoneWrap(_verifyBeforeUpdateEmail, true);\nexport const verifyPasswordResetCode = ɵzoneWrap(_verifyPasswordResetCode, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_authState","_idToken","_user","_applyActionCode","_beforeAuthStateChanged","_checkActionCode","_confirmPasswordReset","_connectAuthEmulator","_createUserWithEmailAndPassword","_deleteUser","_fetchSignInMethodsForEmail","_getAdditionalUserInfo","_getAuth","_getIdToken","_getIdTokenResult","_getMultiFactorResolver","_getRedirectResult","_initializeAuth","_initializeRecaptchaConfig","_isSignInWithEmailLink","_linkWithCredential","_linkWithPhoneNumber","_linkWithPopup","_linkWithRedirect","_multiFactor","_onAuthStateChanged","_onIdTokenChanged","_parseActionCodeURL","_reauthenticateWithCredential","_reauthenticateWithPhoneNumber","_reauthenticateWithPopup","_reauthenticateWithRedirect","_reload","_revokeAccessToken","_sendEmailVerification","_sendPasswordResetEmail","_sendSignInLinkToEmail","_setPersistence","_signInAnonymously","_signInWithCredential","_signInWithCustomToken","_signInWithEmailAndPassword","_signInWithEmailLink","_signInWithPhoneNumber","_signInWithPopup","_signInWithRedirect","_signOut","_unlink","_updateCurrentUser","_updateEmail","_updatePassword","_updatePhoneNumber","_updateProfile","_useDeviceLanguage","_validatePassword","_verifyBeforeUpdateEmail","_verifyPasswordResetCode"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'firebase/compat/auth';
|
|
2
2
|
import { isPlatformServer } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
|
|
4
|
+
import { InjectionToken, inject, EnvironmentInjector, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
|
|
5
5
|
import { pendingUntilEvent } from '@angular/core/rxjs-interop';
|
|
6
6
|
import * as i1 from '@angular/fire';
|
|
7
7
|
import { VERSION } from '@angular/fire';
|
|
@@ -79,6 +79,7 @@ const ɵauthFactory = (app, zone, useEmulator, tenantId, languageCode, useDevice
|
|
|
79
79
|
return auth;
|
|
80
80
|
}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);
|
|
81
81
|
class AngularFireAuth {
|
|
82
|
+
injector = inject(EnvironmentInjector);
|
|
82
83
|
/**
|
|
83
84
|
* Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out
|
|
84
85
|
*/
|
|
@@ -118,7 +119,7 @@ class AngularFireAuth {
|
|
|
118
119
|
// There could potentially be race conditions still... but this greatly decreases the odds while
|
|
119
120
|
// we reevaluate the API.
|
|
120
121
|
auth.pipe(first()).subscribe();
|
|
121
|
-
const redirectResult = auth.pipe(switchMap(auth => auth.getRedirectResult().then(it => it, () => null)), pendingUntilEvent(), shareReplay({ bufferSize: 1, refCount: false }));
|
|
122
|
+
const redirectResult = auth.pipe(switchMap(auth => auth.getRedirectResult().then(it => it, () => null)), pendingUntilEvent(this.injector), shareReplay({ bufferSize: 1, refCount: false }));
|
|
122
123
|
const authStateChanged = auth.pipe(switchMap(auth => new Observable(sub => ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged(next => sub.next(next), err => sub.error(err), () => sub.complete())) }))));
|
|
123
124
|
const idTokenChanged = auth.pipe(switchMap(auth => new Observable(sub => ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged(next => sub.next(next), err => sub.error(err), () => sub.complete())) }))));
|
|
124
125
|
this.authState = redirectResult.pipe(switchMapTo(authStateChanged), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-compat-auth.mjs","sources":["../../../src/compat/auth/base.ts","../../../src/compat/auth/auth.ts","../../../src/compat/auth/auth.module.ts","../../../src/compat/auth/angular-fire-compat-auth.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/auth, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n name: null,\n config: null,\n emulatorConfig: null,\n app: null,\n applyActionCode: null,\n checkActionCode: null,\n confirmPasswordReset: null,\n createUserWithEmailAndPassword: null,\n currentUser: null,\n fetchSignInMethodsForEmail: null,\n isSignInWithEmailLink: null,\n getRedirectResult: null,\n languageCode: null,\n settings: null,\n onAuthStateChanged: null,\n onIdTokenChanged: null,\n sendSignInLinkToEmail: null,\n sendPasswordResetEmail: null,\n setPersistence: null,\n signInAndRetrieveDataWithCredential: null,\n signInAnonymously: null,\n signInWithCredential: null,\n signInWithCustomToken: null,\n signInWithEmailAndPassword: null,\n signInWithPhoneNumber: null,\n signInWithEmailLink: null,\n signInWithPopup: null,\n signInWithRedirect: null,\n signOut: null,\n tenantId: null,\n updateCurrentUser: null,\n useDeviceLanguage: null,\n useEmulator: null,\n verifyPasswordResetCode: null,\n};\n","import { isPlatformServer } from '@angular/common';\nimport { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { pendingUntilEvent } from '@angular/core/rxjs-interop';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { Observable, Subject, from, merge, of } from 'rxjs';\nimport { filter, first, map, observeOn, shareReplay, subscribeOn, switchMap, switchMapTo } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireAuth extends ɵPromiseProxy<firebase.auth.Auth> {}\n\ntype UseEmulatorArguments = Parameters<firebase.auth.Auth['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.auth.use-emulator');\n\nexport const SETTINGS = new InjectionToken<firebase.auth.AuthSettings>('angularfire2.auth.settings');\nexport const TENANT_ID = new InjectionToken<string>('angularfire2.auth.tenant-id');\nexport const LANGUAGE_CODE = new InjectionToken<string>('angularfire2.auth.langugage-code');\nexport const USE_DEVICE_LANGUAGE = new InjectionToken<boolean>('angularfire2.auth.use-device-language');\nexport const PERSISTENCE = new InjectionToken<string>('angularfire.auth.persistence');\n\nexport const ɵauthFactory = (\n app: FirebaseApp, zone: NgZone, useEmulator: UseEmulatorArguments|null,\n tenantId: string, languageCode: string|null, useDeviceLanguage: boolean|null,\n settings: firebase.auth.AuthSettings|null, persistence: string|null,\n) => ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => {\n const auth = zone.runOutsideAngular(() => app.auth());\n if (useEmulator) {\n auth.useEmulator(...useEmulator);\n }\n if (tenantId) {\n auth.tenantId = tenantId;\n }\n auth.languageCode = languageCode;\n if (useDeviceLanguage) {\n auth.useDeviceLanguage();\n }\n if (settings) {\n for (const [k, v] of Object.entries(settings)) {\n auth.settings[k] = v;\n }\n }\n if (persistence) {\n auth.setPersistence(persistence);\n }\n return auth;\n}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireAuth {\n\n /**\n * Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out\n */\n public readonly authState: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's JWT token used to identify the user to a Firebase service (or null).\n */\n public readonly idToken: Observable<string|null>;\n\n /**\n * Observable of the currently signed-in user (or null).\n */\n public readonly user: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's IdTokenResult object which contains the ID token JWT string and other\n * helper properties for getting different data associated with the token as well as all the decoded payload claims\n * (or null).\n */\n public readonly idTokenResult: Observable<firebase.auth.IdTokenResult|null>;\n\n /**\n * Observable of the currently signed-in user's credential, or null\n */\n public readonly credential: Observable<Required<firebase.auth.UserCredential>|null>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string|null|undefined,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(USE_EMULATOR) useEmulator: any, // can't use the tuple here\n @Optional() @Inject(SETTINGS) settings: any, // can't use firebase.auth.AuthSettings here\n @Optional() @Inject(TENANT_ID) tenantId: string | null,\n @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null,\n @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null,\n @Optional() @Inject(PERSISTENCE) persistence: string | null,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const logins = new Subject<Required<firebase.auth.UserCredential>>();\n\n const auth = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => zone.runOutsideAngular(() => import('firebase/compat/auth'))),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n if (isPlatformServer(platformId)) {\n\n this.authState = this.user = this.idToken = this.idTokenResult = this.credential = of(null);\n\n } else {\n\n // HACK, as we're exporting auth.Auth, rather than auth, developers importing firebase.auth\n // (e.g, `import { auth } from 'firebase/compat/app'`) are getting an undefined auth object unexpectedly\n // as we're completely lazy. Let's eagerly load the Auth SDK here.\n // There could potentially be race conditions still... but this greatly decreases the odds while\n // we reevaluate the API.\n auth.pipe(first()).subscribe();\n\n const redirectResult = auth.pipe(\n switchMap(auth => auth.getRedirectResult().then(it => it, () => null)),\n pendingUntilEvent(),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n const authStateChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n )),\n );\n\n const idTokenChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n ))\n );\n\n this.authState = redirectResult.pipe(\n switchMapTo(authStateChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.user = redirectResult.pipe(\n switchMapTo(idTokenChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.idToken = this.user.pipe(\n switchMap(user => user ? from(user.getIdToken()) : of(null))\n );\n\n this.idTokenResult = this.user.pipe(\n switchMap(user => user ? from(user.getIdTokenResult()) : of(null))\n );\n\n this.credential = merge(\n redirectResult,\n logins,\n // pipe in null authState to make credential zipable, just a weird devexp if\n // authState and user go null to still have a credential\n this.authState.pipe(filter(it => !it))\n ).pipe(\n // handle the { user: { } } when a user is already logged in, rather have null\n // TODO handle the type corcersion better\n map(credential => credential?.user ? credential as Required<firebase.auth.UserCredential> : null),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n }\n\n return ɵlazySDKProxy(this, auth, zone, { spy: {\n apply: (name, _, val) => {\n // If they call a signIn or createUser function listen into the promise\n // this will give us the user credential, push onto the logins Subject\n // to be consumed in .credential\n if (name.startsWith('signIn') || name.startsWith('createUser')) {\n // TODO fix the types, the trouble is UserCredential has everything optional\n val.then((user: firebase.auth.UserCredential) => logins.next(user as any));\n }\n }\n }});\n\n }\n\n}\n\nɵapplyMixins(AngularFireAuth, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireAuth } from './auth';\n\n@NgModule({\n providers: [ AngularFireAuth ]\n})\nexport class AngularFireAuthModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'auth-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵcacheInstance","ɵfirebaseAppFactory","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-fire-compat-auth.mjs","sources":["../../../src/compat/auth/base.ts","../../../src/compat/auth/auth.ts","../../../src/compat/auth/auth.module.ts","../../../src/compat/auth/angular-fire-compat-auth.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/auth, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n name: null,\n config: null,\n emulatorConfig: null,\n app: null,\n applyActionCode: null,\n checkActionCode: null,\n confirmPasswordReset: null,\n createUserWithEmailAndPassword: null,\n currentUser: null,\n fetchSignInMethodsForEmail: null,\n isSignInWithEmailLink: null,\n getRedirectResult: null,\n languageCode: null,\n settings: null,\n onAuthStateChanged: null,\n onIdTokenChanged: null,\n sendSignInLinkToEmail: null,\n sendPasswordResetEmail: null,\n setPersistence: null,\n signInAndRetrieveDataWithCredential: null,\n signInAnonymously: null,\n signInWithCredential: null,\n signInWithCustomToken: null,\n signInWithEmailAndPassword: null,\n signInWithPhoneNumber: null,\n signInWithEmailLink: null,\n signInWithPopup: null,\n signInWithRedirect: null,\n signOut: null,\n tenantId: null,\n updateCurrentUser: null,\n useDeviceLanguage: null,\n useEmulator: null,\n verifyPasswordResetCode: null,\n};\n","import { isPlatformServer } from '@angular/common';\nimport { EnvironmentInjector, Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID, inject } from '@angular/core';\nimport { pendingUntilEvent } from '@angular/core/rxjs-interop';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { Observable, Subject, from, merge, of } from 'rxjs';\nimport { filter, first, map, observeOn, shareReplay, subscribeOn, switchMap, switchMapTo } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireAuth extends ɵPromiseProxy<firebase.auth.Auth> {}\n\ntype UseEmulatorArguments = Parameters<firebase.auth.Auth['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.auth.use-emulator');\n\nexport const SETTINGS = new InjectionToken<firebase.auth.AuthSettings>('angularfire2.auth.settings');\nexport const TENANT_ID = new InjectionToken<string>('angularfire2.auth.tenant-id');\nexport const LANGUAGE_CODE = new InjectionToken<string>('angularfire2.auth.langugage-code');\nexport const USE_DEVICE_LANGUAGE = new InjectionToken<boolean>('angularfire2.auth.use-device-language');\nexport const PERSISTENCE = new InjectionToken<string>('angularfire.auth.persistence');\n\nexport const ɵauthFactory = (\n app: FirebaseApp, zone: NgZone, useEmulator: UseEmulatorArguments|null,\n tenantId: string, languageCode: string|null, useDeviceLanguage: boolean|null,\n settings: firebase.auth.AuthSettings|null, persistence: string|null,\n) => ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => {\n const auth = zone.runOutsideAngular(() => app.auth());\n if (useEmulator) {\n auth.useEmulator(...useEmulator);\n }\n if (tenantId) {\n auth.tenantId = tenantId;\n }\n auth.languageCode = languageCode;\n if (useDeviceLanguage) {\n auth.useDeviceLanguage();\n }\n if (settings) {\n for (const [k, v] of Object.entries(settings)) {\n auth.settings[k] = v;\n }\n }\n if (persistence) {\n auth.setPersistence(persistence);\n }\n return auth;\n}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireAuth {\n\n private readonly injector = inject(EnvironmentInjector);\n\n /**\n * Observable of authentication state; as of Firebase 4.0 this is only triggered via sign-in/out\n */\n public readonly authState: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's JWT token used to identify the user to a Firebase service (or null).\n */\n public readonly idToken: Observable<string|null>;\n\n /**\n * Observable of the currently signed-in user (or null).\n */\n public readonly user: Observable<firebase.User|null>;\n\n /**\n * Observable of the currently signed-in user's IdTokenResult object which contains the ID token JWT string and other\n * helper properties for getting different data associated with the token as well as all the decoded payload claims\n * (or null).\n */\n public readonly idTokenResult: Observable<firebase.auth.IdTokenResult|null>;\n\n /**\n * Observable of the currently signed-in user's credential, or null\n */\n public readonly credential: Observable<Required<firebase.auth.UserCredential>|null>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string|null|undefined,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(USE_EMULATOR) useEmulator: any, // can't use the tuple here\n @Optional() @Inject(SETTINGS) settings: any, // can't use firebase.auth.AuthSettings here\n @Optional() @Inject(TENANT_ID) tenantId: string | null,\n @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null,\n @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null,\n @Optional() @Inject(PERSISTENCE) persistence: string | null,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const logins = new Subject<Required<firebase.auth.UserCredential>>();\n\n const auth = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => zone.runOutsideAngular(() => import('firebase/compat/auth'))),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n if (isPlatformServer(platformId)) {\n\n this.authState = this.user = this.idToken = this.idTokenResult = this.credential = of(null);\n\n } else {\n\n // HACK, as we're exporting auth.Auth, rather than auth, developers importing firebase.auth\n // (e.g, `import { auth } from 'firebase/compat/app'`) are getting an undefined auth object unexpectedly\n // as we're completely lazy. Let's eagerly load the Auth SDK here.\n // There could potentially be race conditions still... but this greatly decreases the odds while\n // we reevaluate the API.\n auth.pipe(first()).subscribe();\n\n const redirectResult = auth.pipe(\n switchMap(auth => auth.getRedirectResult().then(it => it, () => null)),\n pendingUntilEvent(this.injector),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n const authStateChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n )),\n );\n\n const idTokenChanged = auth.pipe(\n switchMap(auth => new Observable<firebase.User|null>(sub =>\n ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged(\n next => sub.next(next),\n err => sub.error(err),\n () => sub.complete()\n ))})\n ))\n );\n\n this.authState = redirectResult.pipe(\n switchMapTo(authStateChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.user = redirectResult.pipe(\n switchMapTo(idTokenChanged),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n this.idToken = this.user.pipe(\n switchMap(user => user ? from(user.getIdToken()) : of(null))\n );\n\n this.idTokenResult = this.user.pipe(\n switchMap(user => user ? from(user.getIdTokenResult()) : of(null))\n );\n\n this.credential = merge(\n redirectResult,\n logins,\n // pipe in null authState to make credential zipable, just a weird devexp if\n // authState and user go null to still have a credential\n this.authState.pipe(filter(it => !it))\n ).pipe(\n // handle the { user: { } } when a user is already logged in, rather have null\n // TODO handle the type corcersion better\n map(credential => credential?.user ? credential as Required<firebase.auth.UserCredential> : null),\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n\n }\n\n return ɵlazySDKProxy(this, auth, zone, { spy: {\n apply: (name, _, val) => {\n // If they call a signIn or createUser function listen into the promise\n // this will give us the user credential, push onto the logins Subject\n // to be consumed in .credential\n if (name.startsWith('signIn') || name.startsWith('createUser')) {\n // TODO fix the types, the trouble is UserCredential has everything optional\n val.then((user: firebase.auth.UserCredential) => logins.next(user as any));\n }\n }\n }});\n\n }\n\n}\n\nɵapplyMixins(AngularFireAuth, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireAuth } from './auth';\n\n@NgModule({\n providers: [ AngularFireAuth ]\n})\nexport class AngularFireAuthModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'auth-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵcacheInstance","ɵfirebaseAppFactory","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, NgZone, InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, NgZone, InjectionToken, EnvironmentInjector, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/fire';
|
|
4
4
|
import { VERSION } from '@angular/fire';
|
|
5
5
|
import * as i3 from '@angular/fire/app-check';
|
|
@@ -263,7 +263,7 @@ function snapshotChanges(query, events, scheduler) {
|
|
|
263
263
|
return listChanges(query, events, scheduler);
|
|
264
264
|
}
|
|
265
265
|
|
|
266
|
-
function createListReference(query, afDatabase) {
|
|
266
|
+
function createListReference(query, afDatabase, injector) {
|
|
267
267
|
const outsideAngularScheduler = afDatabase.schedulers.outsideAngular;
|
|
268
268
|
const refInZone = inject(NgZone).run(() => query.ref);
|
|
269
269
|
return {
|
|
@@ -273,13 +273,13 @@ function createListReference(query, afDatabase) {
|
|
|
273
273
|
push: (data) => refInZone.push(data),
|
|
274
274
|
remove: createRemoveMethod(refInZone),
|
|
275
275
|
snapshotChanges(events) {
|
|
276
|
-
return snapshotChanges(query, events, outsideAngularScheduler).pipe(pendingUntilEvent());
|
|
276
|
+
return snapshotChanges(query, events, outsideAngularScheduler).pipe(pendingUntilEvent(injector));
|
|
277
277
|
},
|
|
278
278
|
stateChanges(events) {
|
|
279
|
-
return stateChanges(query, events, outsideAngularScheduler).pipe(pendingUntilEvent());
|
|
279
|
+
return stateChanges(query, events, outsideAngularScheduler).pipe(pendingUntilEvent(injector));
|
|
280
280
|
},
|
|
281
281
|
auditTrail(events) {
|
|
282
|
-
return auditTrail(query, events, outsideAngularScheduler).pipe(pendingUntilEvent());
|
|
282
|
+
return auditTrail(query, events, outsideAngularScheduler).pipe(pendingUntilEvent(injector));
|
|
283
283
|
},
|
|
284
284
|
valueChanges(events, options) {
|
|
285
285
|
const snapshotChanges$ = snapshotChanges(query, events, outsideAngularScheduler);
|
|
@@ -295,7 +295,7 @@ function createListReference(query, afDatabase) {
|
|
|
295
295
|
else {
|
|
296
296
|
return a.payload.val();
|
|
297
297
|
}
|
|
298
|
-
})), pendingUntilEvent());
|
|
298
|
+
})), pendingUntilEvent(injector));
|
|
299
299
|
}
|
|
300
300
|
};
|
|
301
301
|
}
|
|
@@ -306,18 +306,18 @@ function createObjectSnapshotChanges(query, scheduler) {
|
|
|
306
306
|
};
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
-
function createObjectReference(query, afDatabase) {
|
|
309
|
+
function createObjectReference(query, afDatabase, injector) {
|
|
310
310
|
return {
|
|
311
311
|
query,
|
|
312
312
|
snapshotChanges() {
|
|
313
|
-
return createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)().pipe(pendingUntilEvent());
|
|
313
|
+
return createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)().pipe(pendingUntilEvent(injector));
|
|
314
314
|
},
|
|
315
315
|
update(data) { return query.ref.update(data); },
|
|
316
316
|
set(data) { return query.ref.set(data); },
|
|
317
317
|
remove() { return query.ref.remove(); },
|
|
318
318
|
valueChanges() {
|
|
319
319
|
const snapshotChanges$ = createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)();
|
|
320
|
-
return snapshotChanges$.pipe(pendingUntilEvent(), map(action => action.payload.exists() ? action.payload.val() : null));
|
|
320
|
+
return snapshotChanges$.pipe(pendingUntilEvent(injector), map(action => action.payload.exists() ? action.payload.val() : null));
|
|
321
321
|
},
|
|
322
322
|
};
|
|
323
323
|
}
|
|
@@ -327,6 +327,7 @@ const USE_EMULATOR = new InjectionToken('angularfire2.database.use-emulator');
|
|
|
327
327
|
class AngularFireDatabase {
|
|
328
328
|
schedulers;
|
|
329
329
|
database;
|
|
330
|
+
injector = inject(EnvironmentInjector);
|
|
330
331
|
constructor(options, name, databaseURL,
|
|
331
332
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
332
333
|
platformId, zone, schedulers, _useEmulator, // tuple isn't working here
|
|
@@ -352,11 +353,11 @@ class AngularFireDatabase {
|
|
|
352
353
|
if (queryFn) {
|
|
353
354
|
query = queryFn(ref);
|
|
354
355
|
}
|
|
355
|
-
return createListReference(query, this);
|
|
356
|
+
return createListReference(query, this, this.injector);
|
|
356
357
|
}
|
|
357
358
|
object(pathOrRef) {
|
|
358
359
|
const ref = inject(NgZone).runOutsideAngular(() => getRef(this.database, pathOrRef));
|
|
359
|
-
return createObjectReference(ref, this);
|
|
360
|
+
return createObjectReference(ref, this, this.injector);
|
|
360
361
|
}
|
|
361
362
|
createPushId() {
|
|
362
363
|
const ref = inject(NgZone).runOutsideAngular(() => this.database.ref());
|