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

Commit 6d032c7

Browse files
committed
Added support for passing values for cursor queries Issue 1469
1 parent 2b7c1e8 commit 6d032c7

File tree

2 files changed

+59
-32
lines changed

2 files changed

+59
-32
lines changed

src/firebase.android.ts

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2242,10 +2242,10 @@ firebase.firestore._getCollectionReference = (colRef?: JCollectionReference): fi
22422242
orderBy: (fieldPath: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fieldPath, directionStr, colRef),
22432243
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, colRef),
22442244
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(colRef, optionsOrCallback, callbackOrOnError, onError),
2245-
startAfter: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshot, colRef),
2246-
startAt: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.startAt(collectionPath, snapshot, colRef),
2247-
endAt: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.endAt(collectionPath, snapshot, colRef),
2248-
endBefore: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshot, colRef),
2245+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2246+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2247+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2248+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues, colRef)
22492249
};
22502250
};
22512251

@@ -2528,10 +2528,10 @@ firebase.firestore._getQuery = (collectionPath: string, query: com.google.fireba
25282528
orderBy: (fp: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fp, directionStr, query),
25292529
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, query),
25302530
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(query, optionsOrCallback, callbackOrOnError, onError),
2531-
startAfter: (snapshot: DocumentSnapshot) => firebase.firestore.startAfter(collectionPath, snapshot, query),
2532-
startAt: (snapshot: DocumentSnapshot) => firebase.firestore.startAt(collectionPath, snapshot, query),
2533-
endAt: (snapshot: DocumentSnapshot) => firebase.firestore.endAt(collectionPath, snapshot, query),
2534-
endBefore: (snapshot: DocumentSnapshot) => firebase.firestore.endBefore(collectionPath, snapshot, query),
2531+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues,query),
2532+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2533+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2534+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues,query),
25352535
firestore: firebase.firestore
25362536
};
25372537
};
@@ -2582,22 +2582,33 @@ firebase.firestore.limit = (collectionPath: string, limit: number, query: com.go
25822582
return firebase.firestore._getQuery(collectionPath, query);
25832583
};
25842584

2585-
firebase.firestore.startAfter = (collectionPath: string, snapshot: DocumentSnapshot, query: com.google.firebase.firestore.Query): firestore.Query => {
2586-
return firebase.firestore._getQuery(collectionPath, query.startAfter(snapshot.android));
2585+
firebase.firestore.startAfter = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2586+
return firebase.firestore._getQuery(collectionPath, query.startAfter(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
25872587
};
25882588

2589-
firebase.firestore.startAt = (collectionPath: string, snapshot: DocumentSnapshot, query: com.google.firebase.firestore.Query): firestore.Query => {
2590-
return firebase.firestore._getQuery(collectionPath, query.startAt(snapshot.android));
2589+
firebase.firestore.startAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2590+
return firebase.firestore._getQuery(collectionPath, query.startAt(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
25912591
};
25922592

2593-
firebase.firestore.endAt = (collectionPath: string, snapshot: DocumentSnapshot, query: com.google.firebase.firestore.Query): firestore.Query => {
2594-
return firebase.firestore._getQuery(collectionPath, query.endAt(snapshot.android));
2593+
firebase.firestore.endAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2594+
return firebase.firestore._getQuery(collectionPath, query.endAt(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
25952595
};
25962596

2597-
firebase.firestore.endBefore = (collectionPath: string, snapshot: DocumentSnapshot, query: com.google.firebase.firestore.Query): firestore.Query => {
2598-
return firebase.firestore._getQuery(collectionPath, query.endBefore(snapshot.android));
2597+
firebase.firestore.endBefore = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: com.google.firebase.firestore.Query): firestore.Query => {
2598+
return firebase.firestore._getQuery(collectionPath, query.endBefore(firebase.firestore._getSnapshotOrFieldValues(snapshotOrFieldValue,fieldValues)));
25992599
};
26002600

2601+
firebase.firestore._getSnapshotOrFieldValues = (snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[]): any => {
2602+
if(snapshotOrFieldValue && snapshotOrFieldValue.android){
2603+
return snapshotOrFieldValue;
2604+
} else {
2605+
const AllFieldValues = [snapshotOrFieldValue, ...fieldValues];
2606+
const javaArray = Array.create('java.lang.Object',AllFieldValues.length);
2607+
AllFieldValues.forEach((item,index) => javaArray[index] = item);
2608+
return javaArray;
2609+
}
2610+
}
2611+
26012612
export type JDocumentReference = com.google.firebase.firestore.DocumentReference;
26022613
export type JCollectionReference = com.google.firebase.firestore.CollectionReference;
26032614

src/firebase.ios.ts

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,10 +1879,10 @@ firebase.firestore._getCollectionReference = (colRef?: FIRCollectionReference):
18791879
orderBy: (fieldPath: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fieldPath, directionStr, colRef),
18801880
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, colRef),
18811881
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(colRef, optionsOrCallback, callbackOrOnError, onError),
1882-
startAfter: (document: DocumentSnapshot) => firebase.firestore.startAfter(collectionPath, document, colRef),
1883-
startAt: (document: DocumentSnapshot) => firebase.firestore.startAt(collectionPath, document, colRef),
1884-
endAt: (document: DocumentSnapshot) => firebase.firestore.endAt(collectionPath, document, colRef),
1885-
endBefore: (document: DocumentSnapshot) => firebase.firestore.endBefore(collectionPath, document, colRef),
1882+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1883+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1884+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1885+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues, colRef)
18861886
};
18871887
};
18881888

@@ -2197,10 +2197,10 @@ firebase.firestore._getQuery = (collectionPath: string, query: FIRQuery): firest
21972197
orderBy: (fp: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fp, directionStr, query),
21982198
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, query),
21992199
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(query, optionsOrCallback, callbackOrOnError, onError),
2200-
startAfter: (document: DocumentSnapshot) => firebase.firestore.startAfter(collectionPath, document, query),
2201-
startAt: (document: DocumentSnapshot) => firebase.firestore.startAt(collectionPath, document, query),
2202-
endAt: (document: DocumentSnapshot) => firebase.firestore.endAt(collectionPath, document, query),
2203-
endBefore: (document: DocumentSnapshot) => firebase.firestore.endBefore(collectionPath, document, query),
2200+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues,query),
2201+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2202+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2203+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues,query),
22042204
firestore: firebase.firestore
22052205
};
22062206
};
@@ -2250,20 +2250,36 @@ firebase.firestore.limit = (collectionPath: string, limit: number, query: FIRQue
22502250
return firebase.firestore._getQuery(collectionPath, query);
22512251
};
22522252

2253-
firebase.firestore.startAt = (collectionPath: string, document: DocumentSnapshot, query: FIRQuery) => {
2254-
return firebase.firestore._getQuery(collectionPath, query.queryStartingAtDocument(document.ios));
2253+
firebase.firestore.startAfter = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2254+
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2255+
return firebase.firestore._getQuery(collectionPath, query.queryStartingAfterDocument(snapshotOrFieldValue.ios));
2256+
}else {
2257+
return firebase.firestore._getQuery(collectionPath, query.queryStartingAfterValues([snapshotOrFieldValue, ...fieldValues]));
2258+
}
22552259
};
22562260

2257-
firebase.firestore.startAfter = (collectionPath: string, document: DocumentSnapshot, query: FIRQuery) => {
2258-
return firebase.firestore._getQuery(collectionPath, query.queryStartingAfterDocument(document.ios));
2261+
firebase.firestore.startAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2262+
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2263+
return firebase.firestore._getQuery(collectionPath, query.queryStartingAtDocument(snapshotOrFieldValue.ios));
2264+
}else {
2265+
return firebase.firestore._getQuery(collectionPath, query.queryStartingAtValues([snapshotOrFieldValue, ...fieldValues]));
2266+
}
22592267
};
22602268

2261-
firebase.firestore.endAt = (collectionPath: string, document: DocumentSnapshot, query: FIRQuery) => {
2262-
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtDocument(document.ios));
2269+
firebase.firestore.endAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2270+
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2271+
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtDocument(snapshotOrFieldValue.ios));
2272+
}else {
2273+
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtValues([snapshotOrFieldValue, ...fieldValues]));
2274+
}
22632275
};
22642276

2265-
firebase.firestore.endBefore = (collectionPath: string, document: DocumentSnapshot, query: FIRQuery) => {
2266-
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeDocument(document.ios));
2277+
firebase.firestore.endBefore = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2278+
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2279+
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeDocument(snapshotOrFieldValue.ios));
2280+
}else {
2281+
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeValues([snapshotOrFieldValue, ...fieldValues]));
2282+
}
22672283
};
22682284

22692285
class GIDSignInDelegateImpl extends NSObject implements GIDSignInDelegate {

0 commit comments

Comments
 (0)