|
1 | 1 | import { isPlatformServer } from '@angular/common';
|
2 |
| -import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID, inject } from '@angular/core'; |
| 2 | +import { EnvironmentInjector, Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID, inject, runInInjectionContext } from '@angular/core'; |
3 | 3 | import { ɵAngularFireSchedulers } from '@angular/fire';
|
4 | 4 | import { AppCheckInstances } from '@angular/fire/app-check';
|
5 | 5 | import { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';
|
@@ -121,6 +121,7 @@ export function associateQuery<T>(collectionRef: CollectionReference<T>, queryFn
|
121 | 121 | export class AngularFirestore {
|
122 | 122 | public readonly firestore: firebase.firestore.Firestore;
|
123 | 123 | public readonly persistenceEnabled$: Observable<boolean>;
|
| 124 | + private readonly injector = inject(EnvironmentInjector); |
124 | 125 |
|
125 | 126 | /**
|
126 | 127 | * Each Feature of AngularFire has a FirebaseApp injected. This way we
|
@@ -197,7 +198,7 @@ export class AngularFirestore {
|
197 | 198 | collectionRef = pathOrRef;
|
198 | 199 | }
|
199 | 200 | const { ref, query } = associateQuery<T>(collectionRef, queryFn);
|
200 |
| - const refInZone = inject(NgZone).run(() => ref); |
| 201 | + const refInZone = runInInjectionContext(this.injector, () => inject(NgZone).run(() => ref)); |
201 | 202 | return new AngularFirestoreCollection<T>(refInZone, query, this);
|
202 | 203 | }
|
203 | 204 |
|
@@ -227,7 +228,7 @@ export class AngularFirestore {
|
227 | 228 | } else {
|
228 | 229 | ref = pathOrRef;
|
229 | 230 | }
|
230 |
| - const refInZone = inject(NgZone).run(() => ref); |
| 231 | + const refInZone = runInInjectionContext(this.injector, () => inject(NgZone).run(() => ref)); |
231 | 232 | return new AngularFirestoreDocument<T>(refInZone, this);
|
232 | 233 | }
|
233 | 234 |
|
|
0 commit comments