Skip to content
This repository was archived by the owner on Apr 4, 2023. It is now read-only.

Commit a2b7451

Browse files
Firestore - Paginate data with query cursors #1469
1 parent b50fc5b commit a2b7451

File tree

3 files changed

+42
-42
lines changed

3 files changed

+42
-42
lines changed

src/firebase.android.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2333,10 +2333,10 @@ firebase.firestore._getCollectionReference = (colRef?: JCollectionReference): fi
23332333
orderBy: (fieldPath: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fieldPath, directionStr, colRef),
23342334
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, colRef),
23352335
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(colRef, optionsOrCallback, callbackOrOnError, onError),
2336-
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2337-
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2338-
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2339-
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues, colRef)
2336+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue, fieldValues, colRef),
2337+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue, fieldValues, colRef),
2338+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue, fieldValues, colRef),
2339+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue, fieldValues, colRef)
23402340
};
23412341
};
23422342

@@ -2581,10 +2581,10 @@ firebase.firestore._getQuery = (collectionPath: string, query: com.google.fireba
25812581
orderBy: (fp: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fp, directionStr, query),
25822582
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, query),
25832583
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(query, optionsOrCallback, callbackOrOnError, onError),
2584-
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues,query),
2585-
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2586-
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2587-
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues,query),
2584+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue, fieldValues, query),
2585+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue, fieldValues, query),
2586+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue, fieldValues, query),
2587+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue, fieldValues, query),
25882588
firestore: firebase.firestore
25892589
};
25902590
};
@@ -2635,28 +2635,28 @@ firebase.firestore.limit = (collectionPath: string, limit: number, query: com.go
26352635
};
26362636

26372637
firebase.firestore.startAfter = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2638-
return firebase.firestore._getQuery(collectionPath, query.startAfter(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
2638+
return firebase.firestore._getQuery(collectionPath, query.startAfter(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue, fieldValues)));
26392639
};
26402640

26412641
firebase.firestore.startAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2642-
return firebase.firestore._getQuery(collectionPath, query.startAt(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
2642+
return firebase.firestore._getQuery(collectionPath, query.startAt(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue, fieldValues)));
26432643
};
26442644

26452645
firebase.firestore.endAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2646-
return firebase.firestore._getQuery(collectionPath, query.endAt(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
2646+
return firebase.firestore._getQuery(collectionPath, query.endAt(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue, fieldValues)));
26472647
};
26482648

26492649
firebase.firestore.endBefore = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2650-
return firebase.firestore._getQuery(collectionPath, query.endBefore(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
2650+
return firebase.firestore._getQuery(collectionPath, query.endBefore(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue, fieldValues)));
26512651
};
26522652

26532653
firebase.firestore._getSnapshotOrFieldValues = (snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[]): any => {
2654-
if(snapshotOrFieldValue && snapshotOrFieldValue.android) {
2655-
return snapshotOrFieldValue;
2654+
if (snapshotOrFieldValue && snapshotOrFieldValue.android) {
2655+
return snapshotOrFieldValue.android;
26562656
} else {
2657-
const AllFieldValues = [snapshotOrFieldValue, ...fieldValues];
2658-
const javaArray = Array.create('java.lang.Object', AllFieldValues.length);
2659-
AllFieldValues.forEach((value, index) => {
2657+
const allFieldValues = [snapshotOrFieldValue, ...fieldValues];
2658+
const javaArray = Array.create("java.lang.Object", allFieldValues.length);
2659+
allFieldValues.forEach((value, index) => {
26602660
// support only Number and String type
26612661
// Not sure whether other types are supported by OrderBy
26622662
let javaValue: java.lang.String | java.lang.Double;
@@ -2669,7 +2669,7 @@ firebase.firestore._getSnapshotOrFieldValues = (snapshotOrFieldValue: DocumentSn
26692669
});
26702670
return javaArray;
26712671
}
2672-
}
2672+
};
26732673

26742674
export type JDocumentReference = com.google.firebase.firestore.DocumentReference;
26752675
export type JCollectionReference = com.google.firebase.firestore.CollectionReference;

src/firebase.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,7 @@ export namespace dynamicLinks {
668668

669669
export namespace firestore {
670670
export type DocumentData = { [field: string]: any };
671-
export type WhereFilterOp = '<' | '<=' | '==' | '>=' | '>' | 'in' | 'array-contains' | 'array-contains-any';
671+
export type WhereFilterOp = '<' | '<=' | '==' | '>=' | '>' | 'in' | 'array-contains' | 'array-contains-any';
672672
export type OrderByDirection = 'desc' | 'asc';
673673

674674
export interface GeoPoint {
@@ -812,7 +812,7 @@ export namespace firestore {
812812

813813
readonly path: string;
814814

815-
readonly firestore: firestore;
815+
readonly firestore: any;
816816

817817
collection: (collectionPath: string) => CollectionReference;
818818

@@ -832,8 +832,8 @@ export namespace firestore {
832832
}
833833

834834
export interface Query {
835-
readonly firestore: firestore;
836-
835+
readonly firestore: any;
836+
837837
get(options?: GetOptions): Promise<QuerySnapshot>;
838838

839839
where(fieldPath: string, opStr: WhereFilterOp, value: any): Query;

src/firebase.ios.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ function toLoginResult(user, additionalUserInfo?: FIRAdditionalUserInfo): User {
637637
} else if (pid === "google.com" && typeof (GIDSignIn) !== "undefined" && GIDSignIn.sharedInstance() && GIDSignIn.sharedInstance().currentUser) {
638638
// include web compatible oauth2 token
639639
const gidCurrentIdToken = GIDSignIn.sharedInstance().currentUser.authentication.idToken;
640-
providers.push({ id: pid, token: gidCurrentIdToken });
640+
providers.push({id: pid, token: gidCurrentIdToken});
641641
} else if (pid === "apple.com") {
642642
// TODO
643643
} else {
@@ -1946,10 +1946,10 @@ firebase.firestore._getCollectionReference = (colRef?: FIRCollectionReference):
19461946
orderBy: (fieldPath: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fieldPath, directionStr, colRef),
19471947
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, colRef),
19481948
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(colRef, optionsOrCallback, callbackOrOnError, onError),
1949-
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1950-
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1951-
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1952-
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues, colRef)
1949+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue, fieldValues, colRef),
1950+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue, fieldValues, colRef),
1951+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue, fieldValues, colRef),
1952+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue, fieldValues, colRef)
19531953
};
19541954
};
19551955

@@ -2238,10 +2238,10 @@ firebase.firestore._getQuery = (collectionPath: string, query: FIRQuery): firest
22382238
orderBy: (fp: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fp, directionStr, query),
22392239
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, query),
22402240
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(query, optionsOrCallback, callbackOrOnError, onError),
2241-
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues,query),
2242-
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2243-
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2244-
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues,query),
2241+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue, fieldValues, query),
2242+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue, fieldValues, query),
2243+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue, fieldValues, query),
2244+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue, fieldValues, query),
22452245
firestore: firebase.firestore
22462246
};
22472247
};
@@ -2292,35 +2292,35 @@ firebase.firestore.limit = (collectionPath: string, limit: number, query: FIRQue
22922292
};
22932293

22942294
firebase.firestore.startAfter = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2295-
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2295+
if (snapshotOrFieldValue && snapshotOrFieldValue.ios) {
22962296
return firebase.firestore._getQuery(collectionPath, query.queryStartingAfterDocument(snapshotOrFieldValue.ios));
2297-
}else {
2297+
} else {
22982298
return firebase.firestore._getQuery(collectionPath, query.queryStartingAfterValues([snapshotOrFieldValue, ...fieldValues]));
2299-
}
2299+
}
23002300
};
23012301

23022302
firebase.firestore.startAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2303-
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2303+
if (snapshotOrFieldValue && snapshotOrFieldValue.ios) {
23042304
return firebase.firestore._getQuery(collectionPath, query.queryStartingAtDocument(snapshotOrFieldValue.ios));
2305-
}else {
2305+
} else {
23062306
return firebase.firestore._getQuery(collectionPath, query.queryStartingAtValues([snapshotOrFieldValue, ...fieldValues]));
2307-
}
2307+
}
23082308
};
23092309

23102310
firebase.firestore.endAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2311-
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2311+
if (snapshotOrFieldValue && snapshotOrFieldValue.ios) {
23122312
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtDocument(snapshotOrFieldValue.ios));
2313-
}else {
2313+
} else {
23142314
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtValues([snapshotOrFieldValue, ...fieldValues]));
23152315
}
23162316
};
23172317

23182318
firebase.firestore.endBefore = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2319-
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2319+
if (snapshotOrFieldValue && snapshotOrFieldValue.ios) {
23202320
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeDocument(snapshotOrFieldValue.ios));
2321-
}else {
2321+
} else {
23222322
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeValues([snapshotOrFieldValue, ...fieldValues]));
2323-
}
2323+
}
23242324
};
23252325

23262326
class GIDSignInDelegateImpl extends NSObject implements GIDSignInDelegate {

0 commit comments

Comments
 (0)