aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Source/API/FIRQuery.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/Source/API/FIRQuery.mm')
-rw-r--r--Firestore/Source/API/FIRQuery.mm25
1 files changed, 6 insertions, 19 deletions
diff --git a/Firestore/Source/API/FIRQuery.mm b/Firestore/Source/API/FIRQuery.mm
index 08c912d..cdf8bc9 100644
--- a/Firestore/Source/API/FIRQuery.mm
+++ b/Firestore/Source/API/FIRQuery.mm
@@ -487,26 +487,13 @@ addSnapshotListenerInternalWithOptions:(FSTListenOptions *)internalOptions
fieldValue = [self.firestore.dataConverter parsedQueryValue:value];
}
- id<FSTFilter> filter;
- if ([fieldValue isEqual:[FSTNullValue nullValue]]) {
- if (filterOperator != FSTRelationFilterOperatorEqual) {
- FSTThrowInvalidUsage(@"InvalidQueryException",
- @"Invalid Query. You can only perform equality comparisons on nil / "
- "NSNull.");
- }
- filter = [[FSTNullFilter alloc] initWithField:fieldPath];
- } else if ([fieldValue isEqual:[FSTDoubleValue nanValue]]) {
- if (filterOperator != FSTRelationFilterOperatorEqual) {
- FSTThrowInvalidUsage(@"InvalidQueryException",
- @"Invalid Query. You can only perform equality comparisons on NaN.");
- }
- filter = [[FSTNanFilter alloc] initWithField:fieldPath];
- } else {
- filter = [FSTRelationFilter filterWithField:fieldPath
- filterOperator:filterOperator
- value:fieldValue];
- [self validateNewRelationFilter:filter];
+ FSTFilter *filter =
+ [FSTFilter filterWithField:fieldPath filterOperator:filterOperator value:fieldValue];
+
+ if ([filter isKindOfClass:[FSTRelationFilter class]]) {
+ [self validateNewRelationFilter:(FSTRelationFilter *)filter];
}
+
return [FIRQuery referenceWithQuery:[self.query queryByAddingFilter:filter]
firestore:self.firestore];
}