@@ -111,7 +111,7 @@ export class FirebaseFirestore implements legacy.FirebaseFirestore {
111
111
}
112
112
113
113
collectionGroup ( collectionId : string ) : Query < legacy . DocumentData > {
114
- return new Query ( collectionGroup ( this . _delegate , collectionId ) ) ;
114
+ return new Query ( this , collectionGroup ( this . _delegate , collectionId ) ) ;
115
115
}
116
116
117
117
runTransaction < T > (
@@ -441,16 +441,18 @@ export class QueryDocumentSnapshot<T = legacy.DocumentData>
441
441
}
442
442
443
443
export class Query < T = legacy . DocumentData > implements legacy . Query < T > {
444
- constructor ( readonly _delegate : exp . Query < T > ) { }
445
-
446
- readonly firestore = new FirebaseFirestore ( this . _delegate . firestore ) ;
444
+ constructor (
445
+ readonly firestore : FirebaseFirestore ,
446
+ readonly _delegate : exp . Query < T >
447
+ ) { }
447
448
448
449
where (
449
450
fieldPath : string | FieldPath ,
450
451
opStr : legacy . WhereFilterOp ,
451
452
value : any
452
453
) : Query < T > {
453
454
return new Query < T > (
455
+ this . firestore ,
454
456
this . _delegate . where ( unwrap ( fieldPath ) , opStr , unwrap ( value ) )
455
457
) ;
456
458
}
@@ -460,47 +462,63 @@ export class Query<T = legacy.DocumentData> implements legacy.Query<T> {
460
462
directionStr ?: legacy . OrderByDirection
461
463
) : Query < T > {
462
464
return new Query < T > (
465
+ this . firestore ,
463
466
this . _delegate . orderBy ( unwrap ( fieldPath ) , directionStr )
464
467
) ;
465
468
}
466
469
467
470
limit ( limit : number ) : Query < T > {
468
- return new Query < T > ( this . _delegate . limit ( limit ) ) ;
471
+ return new Query < T > ( this . firestore , this . _delegate . limit ( limit ) ) ;
469
472
}
470
473
471
474
limitToLast ( limit : number ) : Query < T > {
472
- return new Query < T > ( this . _delegate . limitToLast ( limit ) ) ;
475
+ return new Query < T > ( this . firestore , this . _delegate . limitToLast ( limit ) ) ;
473
476
}
474
477
475
478
startAt ( ...args : any [ ] ) : Query < T > {
476
479
if ( args [ 0 ] instanceof DocumentSnapshot ) {
477
- return new Query ( this . _delegate . startAt ( args [ 0 ] . _delegate ) ) ;
480
+ return new Query (
481
+ this . firestore ,
482
+ this . _delegate . startAt ( args [ 0 ] . _delegate )
483
+ ) ;
478
484
} else {
479
- return new Query ( this . _delegate . startAt ( ...unwrap ( args ) ) ) ;
485
+ return new Query ( this . firestore , this . _delegate . startAt ( ...unwrap ( args ) ) ) ;
480
486
}
481
487
}
482
488
483
489
startAfter ( ...args : any [ ] ) : Query < T > {
484
490
if ( args [ 0 ] instanceof DocumentSnapshot ) {
485
- return new Query ( this . _delegate . startAfter ( args [ 0 ] . _delegate ) ) ;
491
+ return new Query (
492
+ this . firestore ,
493
+ this . _delegate . startAfter ( args [ 0 ] . _delegate )
494
+ ) ;
486
495
} else {
487
- return new Query ( this . _delegate . startAfter ( ...unwrap ( args ) ) ) ;
496
+ return new Query (
497
+ this . firestore ,
498
+ this . _delegate . startAfter ( ...unwrap ( args ) )
499
+ ) ;
488
500
}
489
501
}
490
502
491
503
endBefore ( ...args : any [ ] ) : Query < T > {
492
504
if ( args [ 0 ] instanceof DocumentSnapshot ) {
493
- return new Query ( this . _delegate . endBefore ( args [ 0 ] . _delegate ) ) ;
505
+ return new Query (
506
+ this . firestore ,
507
+ this . _delegate . endBefore ( args [ 0 ] . _delegate )
508
+ ) ;
494
509
} else {
495
- return new Query ( this . _delegate . endBefore ( ...unwrap ( args ) ) ) ;
510
+ return new Query (
511
+ this . firestore ,
512
+ this . _delegate . endBefore ( ...unwrap ( args ) )
513
+ ) ;
496
514
}
497
515
}
498
516
499
517
endAt ( ...args : any [ ] ) : Query < T > {
500
518
if ( args [ 0 ] instanceof DocumentSnapshot ) {
501
- return new Query ( this . _delegate . endAt ( args [ 0 ] . _delegate ) ) ;
519
+ return new Query ( this . firestore , this . _delegate . endAt ( args [ 0 ] . _delegate ) ) ;
502
520
} else {
503
- return new Query ( this . _delegate . endAt ( ...unwrap ( args ) ) ) ;
521
+ return new Query ( this . firestore , this . _delegate . endAt ( ...unwrap ( args ) ) ) ;
504
522
}
505
523
}
506
524
@@ -555,6 +573,7 @@ export class Query<T = legacy.DocumentData> implements legacy.Query<T> {
555
573
556
574
withConverter < U > ( converter : legacy . FirestoreDataConverter < U > ) : Query < U > {
557
575
return new Query < U > (
576
+ this . firestore ,
558
577
this . _delegate . withConverter (
559
578
converter as UntypedFirestoreDataConverter < U >
560
579
)
@@ -569,7 +588,7 @@ export class QuerySnapshot<T = legacy.DocumentData>
569
588
readonly _delegate : exp . QuerySnapshot < T >
570
589
) { }
571
590
572
- readonly query = new Query ( this . _delegate . query ) ;
591
+ readonly query = new Query ( this . _firestore , this . _delegate . query ) ;
573
592
readonly metadata = this . _delegate . metadata ;
574
593
readonly size = this . _delegate . size ;
575
594
readonly empty = this . _delegate . empty ;
@@ -621,10 +640,10 @@ export class DocumentChange<T = legacy.DocumentData>
621
640
export class CollectionReference < T = legacy . DocumentData > extends Query < T >
622
641
implements legacy . CollectionReference < T > {
623
642
constructor (
624
- readonly firestore : FirebaseFirestore ,
643
+ firestore : FirebaseFirestore ,
625
644
readonly _delegate : exp . CollectionReference < T >
626
645
) {
627
- super ( _delegate ) ;
646
+ super ( firestore , _delegate ) ;
628
647
}
629
648
630
649
readonly id = this . _delegate . id ;
0 commit comments