diff options
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:@"/"]) { |