1- import { NgZone , inject } from '@angular/core' ;
1+ import { Injector , NgZone , inject } from '@angular/core' ;
22import { pendingUntilEvent } from '@angular/core/rxjs-interop' ;
33import type { Observable } from 'rxjs' ;
44import { map } from 'rxjs/operators' ;
@@ -10,7 +10,7 @@ import { createRemoveMethod } from './remove';
1010import { snapshotChanges } from './snapshot-changes' ;
1111import { stateChanges } from './state-changes' ;
1212
13- export function createListReference < T = any > ( query : DatabaseQuery , afDatabase : AngularFireDatabase ) : AngularFireList < T > {
13+ export function createListReference < T = any > ( query : DatabaseQuery , afDatabase : AngularFireDatabase , injector ?: Injector ) : AngularFireList < T > {
1414 const outsideAngularScheduler = afDatabase . schedulers . outsideAngular ;
1515 const refInZone = inject ( NgZone ) . run ( ( ) => query . ref ) ;
1616 return {
@@ -20,13 +20,13 @@ export function createListReference<T= any>(query: DatabaseQuery, afDatabase: An
2020 push : ( data : T ) => refInZone . push ( data ) ,
2121 remove : createRemoveMethod ( refInZone ) ,
2222 snapshotChanges ( events ?: ChildEvent [ ] ) {
23- return snapshotChanges < T > ( query , events , outsideAngularScheduler ) . pipe ( pendingUntilEvent ( ) ) ;
23+ return snapshotChanges < T > ( query , events , outsideAngularScheduler ) . pipe ( pendingUntilEvent ( injector ) ) ;
2424 } ,
2525 stateChanges ( events ?: ChildEvent [ ] ) {
26- return stateChanges < T > ( query , events , outsideAngularScheduler ) . pipe ( pendingUntilEvent ( ) ) ;
26+ return stateChanges < T > ( query , events , outsideAngularScheduler ) . pipe ( pendingUntilEvent ( injector ) ) ;
2727 } ,
2828 auditTrail ( events ?: ChildEvent [ ] ) {
29- return auditTrail < T > ( query , events , outsideAngularScheduler ) . pipe ( pendingUntilEvent ( ) ) ;
29+ return auditTrail < T > ( query , events , outsideAngularScheduler ) . pipe ( pendingUntilEvent ( injector ) ) ;
3030 } ,
3131 valueChanges < K extends string > ( events ?: ChildEvent [ ] , options ?: { idField ?: K } ) : Observable < ( T & Record < string , string > ) [ ] > {
3232 const snapshotChanges$ = snapshotChanges < T > ( query , events , outsideAngularScheduler ) ;
@@ -43,7 +43,7 @@ export function createListReference<T= any>(query: DatabaseQuery, afDatabase: An
4343 return a . payload . val ( ) as T & Record < string , string >
4444 }
4545 } ) ) ,
46- pendingUntilEvent ( )
46+ pendingUntilEvent ( injector )
4747 ) ;
4848 }
4949 } ;
0 commit comments