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

Commit 6d857b3

Browse files
authored
Merge pull request #4 from milansar/geofirestore
Geofirestore
2 parents c7be578 + 2f665bf commit 6d857b3

File tree

3 files changed

+77
-32
lines changed

3 files changed

+77
-32
lines changed

src/firebase.android.ts

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2246,6 +2246,7 @@ firebase.firestore._getDocumentReference = (docRef?: JDocumentReference): firest
22462246
id: docRef.getId(),
22472247
parent: firebase.firestore._getCollectionReference(docRef.getParent()),
22482248
path: docRef.getPath(),
2249+
firestore: firebase.firestore,
22492250
collection: cp => firebase.firestore.collection(`${collectionPath}/${docRef.getId()}/${cp}`),
22502251
set: (data: any, options?: firestore.SetOptions) => firebase.firestore.set(collectionPath, docRef.getId(), data, options),
22512252
get: (options?: firestore.GetOptions) => firebase.firestore.getDocument(collectionPath, docRef.getId(), options),
@@ -2276,17 +2277,18 @@ firebase.firestore._getCollectionReference = (colRef?: JCollectionReference): fi
22762277
return {
22772278
id: colRef.getId(),
22782279
parent: firebase.firestore._getDocumentReference(colRef.getParent()),
2280+
firestore: firebase.firestore,
22792281
doc: (documentPath?: string) => firebase.firestore.doc(collectionPath, documentPath),
22802282
add: document => firebase.firestore.add(collectionPath, document),
22812283
get: (options?: firestore.GetOptions) => firebase.firestore.get(collectionPath, options),
22822284
where: (fieldPath: string, opStr: firestore.WhereFilterOp, value: any) => firebase.firestore.where(collectionPath, fieldPath, opStr, value),
22832285
orderBy: (fieldPath: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fieldPath, directionStr, colRef),
22842286
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, colRef),
22852287
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(colRef, optionsOrCallback, callbackOrOnError, onError),
2286-
startAfter: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshot, colRef),
2287-
startAt: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.startAt(collectionPath, snapshot, colRef),
2288-
endAt: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.endAt(collectionPath, snapshot, colRef),
2289-
endBefore: (snapshot: DocumentSnapshot): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshot, colRef),
2288+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2289+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2290+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
2291+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues, colRef)
22902292
};
22912293
};
22922294

@@ -2531,10 +2533,11 @@ firebase.firestore._getQuery = (collectionPath: string, query: com.google.fireba
25312533
orderBy: (fp: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fp, directionStr, query),
25322534
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, query),
25332535
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(query, optionsOrCallback, callbackOrOnError, onError),
2534-
startAfter: (snapshot: DocumentSnapshot) => firebase.firestore.startAfter(collectionPath, snapshot, query),
2535-
startAt: (snapshot: DocumentSnapshot) => firebase.firestore.startAt(collectionPath, snapshot, query),
2536-
endAt: (snapshot: DocumentSnapshot) => firebase.firestore.endAt(collectionPath, snapshot, query),
2537-
endBefore: (snapshot: DocumentSnapshot) => firebase.firestore.endBefore(collectionPath, snapshot, query),
2536+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues,query),
2537+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2538+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2539+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues,query),
2540+
firestore: firebase.firestore
25382541
};
25392542
};
25402543

@@ -2580,22 +2583,33 @@ firebase.firestore.limit = (collectionPath: string, limit: number, query: com.go
25802583
return firebase.firestore._getQuery(collectionPath, query);
25812584
};
25822585

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

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

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

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

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

src/firebase.d.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,8 @@ export namespace firestore {
792792

793793
readonly path: string;
794794

795+
readonly firestore: firestore;
796+
795797
collection: (collectionPath: string) => CollectionReference;
796798

797799
set: (document: any, options?: SetOptions) => Promise<void>;
@@ -810,6 +812,8 @@ export namespace firestore {
810812
}
811813

812814
export interface Query {
815+
readonly firestore: firestore;
816+
813817
get(options?: GetOptions): Promise<QuerySnapshot>;
814818

815819
where(fieldPath: string, opStr: WhereFilterOp, value: any): Query;
@@ -822,11 +826,19 @@ export namespace firestore {
822826

823827
startAt(snapshot: DocumentSnapshot): Query;
824828

829+
startAt(...fieldValues: any[]): Query;
830+
825831
startAfter(snapshot: DocumentSnapshot): Query;
826832

833+
startAfter(...fieldValues: any[]): Query;
834+
827835
endAt(snapshot: DocumentSnapshot): Query;
828836

837+
endAt(...fieldValues: any[]): Query;
838+
829839
endBefore(snapshot: DocumentSnapshot): Query;
840+
841+
endBefore(...fieldValues: any[]): Query;
830842
}
831843

832844
export interface CollectionGroup {

src/firebase.ios.ts

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,17 +1892,18 @@ firebase.firestore._getCollectionReference = (colRef?: FIRCollectionReference):
18921892
return {
18931893
id: colRef.collectionID,
18941894
parent: firebase.firestore._getDocumentReference(colRef.parent),
1895+
firestore: firebase.firestore,
18951896
doc: (documentPath?: string) => firebase.firestore.doc(collectionPath, documentPath),
18961897
add: document => firebase.firestore.add(collectionPath, document),
18971898
get: (options?: firestore.GetOptions) => firebase.firestore.get(collectionPath, options),
18981899
where: (fieldPath: string, opStr: firestore.WhereFilterOp, value: any) => firebase.firestore.where(collectionPath, fieldPath, opStr, value),
18991900
orderBy: (fieldPath: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fieldPath, directionStr, colRef),
19001901
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, colRef),
19011902
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(colRef, optionsOrCallback, callbackOrOnError, onError),
1902-
startAfter: (document: DocumentSnapshot) => firebase.firestore.startAfter(collectionPath, document, colRef),
1903-
startAt: (document: DocumentSnapshot) => firebase.firestore.startAt(collectionPath, document, colRef),
1904-
endAt: (document: DocumentSnapshot) => firebase.firestore.endAt(collectionPath, document, colRef),
1905-
endBefore: (document: DocumentSnapshot) => firebase.firestore.endBefore(collectionPath, document, colRef),
1903+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1904+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1905+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues, colRef),
1906+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues, colRef)
19061907
};
19071908
};
19081909

@@ -1928,6 +1929,7 @@ firebase.firestore._getDocumentReference = (docRef?: FIRDocumentReference): fire
19281929
id: docRef.documentID,
19291930
parent: firebase.firestore._getCollectionReference(docRef.parent),
19301931
path: docRef.path,
1932+
firestore: firebase.firestore,
19311933
collection: cp => firebase.firestore.collection(`${collectionPath}/${docRef.documentID}/${cp}`),
19321934
set: (data: any, options?: firestore.SetOptions) => firebase.firestore.set(collectionPath, docRef.documentID, data, options),
19331935
get: (options?: firestore.GetOptions) => firebase.firestore.getDocument(collectionPath, docRef.documentID, options),
@@ -2190,10 +2192,11 @@ firebase.firestore._getQuery = (collectionPath: string, query: FIRQuery): firest
21902192
orderBy: (fp: string, directionStr: firestore.OrderByDirection): firestore.Query => firebase.firestore.orderBy(collectionPath, fp, directionStr, query),
21912193
limit: (limit: number): firestore.Query => firebase.firestore.limit(collectionPath, limit, query),
21922194
onSnapshot: (optionsOrCallback: firestore.SnapshotListenOptions | ((snapshot: QuerySnapshot) => void), callbackOrOnError?: (snapshotOrError: QuerySnapshot | Error) => void, onError?: (error: Error) => void) => firebase.firestore.onCollectionSnapshot(query, optionsOrCallback, callbackOrOnError, onError),
2193-
startAfter: (document: DocumentSnapshot) => firebase.firestore.startAfter(collectionPath, document, query),
2194-
startAt: (document: DocumentSnapshot) => firebase.firestore.startAt(collectionPath, document, query),
2195-
endAt: (document: DocumentSnapshot) => firebase.firestore.endAt(collectionPath, document, query),
2196-
endBefore: (document: DocumentSnapshot) => firebase.firestore.endBefore(collectionPath, document, query),
2195+
startAfter: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAfter(collectionPath, snapshotOrFieldValue,fieldValues,query),
2196+
startAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.startAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2197+
endAt: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endAt(collectionPath, snapshotOrFieldValue,fieldValues,query),
2198+
endBefore: (snapshotOrFieldValue: DocumentSnapshot | any, ...fieldValues: any[]): firestore.Query => firebase.firestore.endBefore(collectionPath, snapshotOrFieldValue,fieldValues,query),
2199+
firestore: firebase.firestore
21972200
};
21982201
};
21992202

@@ -2238,20 +2241,36 @@ firebase.firestore.limit = (collectionPath: string, limit: number, query: FIRQue
22382241
return firebase.firestore._getQuery(collectionPath, query);
22392242
};
22402243

2241-
firebase.firestore.startAt = (collectionPath: string, document: DocumentSnapshot, query: FIRQuery) => {
2242-
return firebase.firestore._getQuery(collectionPath, query.queryStartingAtDocument(document.ios));
2244+
firebase.firestore.startAfter = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2245+
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2246+
return firebase.firestore._getQuery(collectionPath, query.queryStartingAfterDocument(snapshotOrFieldValue.ios));
2247+
}else {
2248+
return firebase.firestore._getQuery(collectionPath, query.queryStartingAfterValues([snapshotOrFieldValue, ...fieldValues]));
2249+
}
22432250
};
22442251

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

2249-
firebase.firestore.endAt = (collectionPath: string, document: DocumentSnapshot, query: FIRQuery) => {
2250-
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtDocument(document.ios));
2260+
firebase.firestore.endAt = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2261+
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2262+
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtDocument(snapshotOrFieldValue.ios));
2263+
}else {
2264+
return firebase.firestore._getQuery(collectionPath, query.queryEndingAtValues([snapshotOrFieldValue, ...fieldValues]));
2265+
}
22512266
};
22522267

2253-
firebase.firestore.endBefore = (collectionPath: string, document: DocumentSnapshot, query: FIRQuery) => {
2254-
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeDocument(document.ios));
2268+
firebase.firestore.endBefore = (collectionPath: string, snapshotOrFieldValue: DocumentSnapshot | any, fieldValues: any[], query: FIRQuery): firestore.Query => {
2269+
if(snapshotOrFieldValue && snapshotOrFieldValue.ios){
2270+
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeDocument(snapshotOrFieldValue.ios));
2271+
}else {
2272+
return firebase.firestore._getQuery(collectionPath, query.queryEndingBeforeValues([snapshotOrFieldValue, ...fieldValues]));
2273+
}
22552274
};
22562275

22572276
class GIDSignInDelegateImpl extends NSObject implements GIDSignInDelegate {

0 commit comments

Comments
 (0)