diff options
author | Michael Lehenbauer <mikelehen@gmail.com> | 2018-04-23 10:03:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-23 10:03:55 -0700 |
commit | e4384c3e809556e75907df74cd116307f397472f (patch) | |
tree | 98841eba1d45eb94adcb798b6f792c16ba4b8d18 /Firestore/Source/API/FIRQuery.mm | |
parent | 8e70791465f9b5e4bb75dfc18de4a4ed90961974 (diff) |
Array Contains Queries (not added to public headers yet). (#1138)
Diffstat (limited to 'Firestore/Source/API/FIRQuery.mm')
-rw-r--r-- | Firestore/Source/API/FIRQuery.mm | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Firestore/Source/API/FIRQuery.mm b/Firestore/Source/API/FIRQuery.mm index 2d78ac0..32d8327 100644 --- a/Firestore/Source/API/FIRQuery.mm +++ b/Firestore/Source/API/FIRQuery.mm @@ -238,6 +238,17 @@ addSnapshotListenerInternalWithOptions:(FSTListenOptions *)internalOptions value:value]; } +- (FIRQuery *)queryWhereField:(NSString *)field arrayContains:(id)value { + return + [self queryWithFilterOperator:FSTRelationFilterOperatorArrayContains field:field value:value]; +} + +- (FIRQuery *)queryWhereFieldPath:(FIRFieldPath *)path arrayContains:(id)value { + return [self queryWithFilterOperator:FSTRelationFilterOperatorArrayContains + path:path.internalValue + value:value]; +} + - (FIRQuery *)queryWhereField:(NSString *)field isGreaterThanOrEqualTo:(id)value { return [self queryWithFilterOperator:FSTRelationFilterOperatorGreaterThanOrEqual field:field @@ -443,6 +454,11 @@ addSnapshotListenerInternalWithOptions:(FSTListenOptions *)internalOptions value:(id)value { FSTFieldValue *fieldValue; if (fieldPath.IsKeyFieldPath()) { + if (filterOperator == FSTRelationFilterOperatorArrayContains) { + FSTThrowInvalidArgument( + @"Invalid query. You can't do arrayContains queries on document ID since document IDs " + @"are not arrays."); + } if ([value isKindOfClass:[NSString class]]) { NSString *documentKey = (NSString *)value; if ([documentKey containsString:@"/"]) { |