Skip to content

Commit bba69f1

Browse files
Query fix
1 parent f94916d commit bba69f1

File tree

2 files changed

+42
-19
lines changed

2 files changed

+42
-19
lines changed

integration/firestore/package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,13 @@
99
"test": "yarn build:memory; karma start --single-run; yarn build:persistence; karma start --single-run;",
1010
"test:ci": "node ../../scripts/run_tests_in_ci.js",
1111
"test:persistence": " yarn build:persistence; karma start --single-run",
12+
"test:persistence:debug:": "yarn build:persistence; karma start --auto-watch --browsers Chrome",
1213
"test:memory": "yarn build:memory; karma start --single-run",
13-
"test:debug:persistence": "yarn build:deps; yarn build:persistence; karma start --auto-watch --browsers Chrome",
14-
"test:debug:memory": "yarn build:deps; yarn build:memory; karma start --auto-watch --browsers Chrome"
14+
"test:memory:debug": "yarn build:memory; karma start --auto-watch --browsers Chrome"
15+
},
16+
"peerDependencies": {
17+
"@firebase/app": "0.x",
18+
"@firebase/firestore": "0.x"
1519
},
1620
"devDependencies": {
1721
"@types/mocha": "7.0.2",

packages/firestore/exp/test/shim.ts

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export class FirebaseFirestore implements legacy.FirebaseFirestore {
111111
}
112112

113113
collectionGroup(collectionId: string): Query<legacy.DocumentData> {
114-
return new Query(collectionGroup(this._delegate, collectionId));
114+
return new Query(this, collectionGroup(this._delegate, collectionId));
115115
}
116116

117117
runTransaction<T>(
@@ -441,16 +441,18 @@ export class QueryDocumentSnapshot<T = legacy.DocumentData>
441441
}
442442

443443
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+
) {}
447448

448449
where(
449450
fieldPath: string | FieldPath,
450451
opStr: legacy.WhereFilterOp,
451452
value: any
452453
): Query<T> {
453454
return new Query<T>(
455+
this.firestore,
454456
this._delegate.where(unwrap(fieldPath), opStr, unwrap(value))
455457
);
456458
}
@@ -460,47 +462,63 @@ export class Query<T = legacy.DocumentData> implements legacy.Query<T> {
460462
directionStr?: legacy.OrderByDirection
461463
): Query<T> {
462464
return new Query<T>(
465+
this.firestore,
463466
this._delegate.orderBy(unwrap(fieldPath), directionStr)
464467
);
465468
}
466469

467470
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));
469472
}
470473

471474
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));
473476
}
474477

475478
startAt(...args: any[]): Query<T> {
476479
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+
);
478484
} else {
479-
return new Query(this._delegate.startAt(...unwrap(args)));
485+
return new Query(this.firestore, this._delegate.startAt(...unwrap(args)));
480486
}
481487
}
482488

483489
startAfter(...args: any[]): Query<T> {
484490
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+
);
486495
} else {
487-
return new Query(this._delegate.startAfter(...unwrap(args)));
496+
return new Query(
497+
this.firestore,
498+
this._delegate.startAfter(...unwrap(args))
499+
);
488500
}
489501
}
490502

491503
endBefore(...args: any[]): Query<T> {
492504
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+
);
494509
} else {
495-
return new Query(this._delegate.endBefore(...unwrap(args)));
510+
return new Query(
511+
this.firestore,
512+
this._delegate.endBefore(...unwrap(args))
513+
);
496514
}
497515
}
498516

499517
endAt(...args: any[]): Query<T> {
500518
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));
502520
} else {
503-
return new Query(this._delegate.endAt(...unwrap(args)));
521+
return new Query(this.firestore, this._delegate.endAt(...unwrap(args)));
504522
}
505523
}
506524

@@ -555,6 +573,7 @@ export class Query<T = legacy.DocumentData> implements legacy.Query<T> {
555573

556574
withConverter<U>(converter: legacy.FirestoreDataConverter<U>): Query<U> {
557575
return new Query<U>(
576+
this.firestore,
558577
this._delegate.withConverter(
559578
converter as UntypedFirestoreDataConverter<U>
560579
)
@@ -569,7 +588,7 @@ export class QuerySnapshot<T = legacy.DocumentData>
569588
readonly _delegate: exp.QuerySnapshot<T>
570589
) {}
571590

572-
readonly query = new Query(this._delegate.query);
591+
readonly query = new Query(this._firestore, this._delegate.query);
573592
readonly metadata = this._delegate.metadata;
574593
readonly size = this._delegate.size;
575594
readonly empty = this._delegate.empty;
@@ -621,10 +640,10 @@ export class DocumentChange<T = legacy.DocumentData>
621640
export class CollectionReference<T = legacy.DocumentData> extends Query<T>
622641
implements legacy.CollectionReference<T> {
623642
constructor(
624-
readonly firestore: FirebaseFirestore,
643+
firestore: FirebaseFirestore,
625644
readonly _delegate: exp.CollectionReference<T>
626645
) {
627-
super(_delegate);
646+
super(firestore, _delegate);
628647
}
629648

630649
readonly id = this._delegate.id;

0 commit comments

Comments
 (0)