@@ -30,11 +30,11 @@ import {
30
30
import {
31
31
Bound ,
32
32
Direction ,
33
+ FieldFilter ,
33
34
Filter ,
35
+ Operator ,
34
36
OrderBy ,
35
- Query as InternalQuery ,
36
- RelationFilter ,
37
- RelationOp
37
+ Query as InternalQuery
38
38
} from '../core/query' ;
39
39
import { Transaction as InternalTransaction } from '../core/transaction' ;
40
40
import { ChangeType , ViewSnapshot } from '../core/view_snapshot' ;
@@ -1430,16 +1430,16 @@ export class Query implements firestore.Query {
1430
1430
1431
1431
let fieldValue ;
1432
1432
const fieldPath = fieldPathFromArgument ( 'Query.where' , field ) ;
1433
- const relationOp = RelationOp . fromString ( opStr ) ;
1433
+ const operator = Operator . fromString ( opStr ) ;
1434
1434
if ( fieldPath . isKeyField ( ) ) {
1435
1435
if (
1436
- relationOp === RelationOp . ARRAY_CONTAINS ||
1437
- relationOp === RelationOp . ARRAY_CONTAINS_ANY ||
1438
- relationOp === RelationOp . IN
1436
+ operator === Operator . ARRAY_CONTAINS ||
1437
+ operator === Operator . ARRAY_CONTAINS_ANY ||
1438
+ operator === Operator . IN
1439
1439
) {
1440
1440
throw new FirestoreError (
1441
1441
Code . INVALID_ARGUMENT ,
1442
- `Invalid Query. You can't perform '${ relationOp . toString ( ) } ' ` +
1442
+ `Invalid Query. You can't perform '${ operator . toString ( ) } ' ` +
1443
1443
'queries on FieldPath.documentId().'
1444
1444
) ;
1445
1445
}
@@ -1492,20 +1492,20 @@ export class Query implements firestore.Query {
1492
1492
}
1493
1493
} else {
1494
1494
if (
1495
- relationOp === RelationOp . IN ||
1496
- relationOp === RelationOp . ARRAY_CONTAINS_ANY
1495
+ operator === Operator . IN ||
1496
+ operator === Operator . ARRAY_CONTAINS_ANY
1497
1497
) {
1498
1498
if ( ! Array . isArray ( value ) || value . length === 0 ) {
1499
1499
throw new FirestoreError (
1500
1500
Code . INVALID_ARGUMENT ,
1501
1501
'Invalid Query. A non-empty array is required for ' +
1502
- `'${ relationOp . toString ( ) } ' filters.`
1502
+ `'${ operator . toString ( ) } ' filters.`
1503
1503
) ;
1504
1504
}
1505
1505
if ( value . length > 10 ) {
1506
1506
throw new FirestoreError (
1507
1507
Code . INVALID_ARGUMENT ,
1508
- `Invalid Query. '${ relationOp . toString ( ) } ' filters support a ` +
1508
+ `Invalid Query. '${ operator . toString ( ) } ' filters support a ` +
1509
1509
'maximum of 10 elements in the value array.'
1510
1510
) ;
1511
1511
}
@@ -1515,7 +1515,7 @@ export class Query implements firestore.Query {
1515
1515
value
1516
1516
) ;
1517
1517
}
1518
- const filter = Filter . create ( fieldPath , relationOp , fieldValue ) ;
1518
+ const filter = Filter . create ( fieldPath , operator , fieldValue ) ;
1519
1519
this . validateNewFilter ( filter ) ;
1520
1520
return new Query ( this . _query . addFilter ( filter ) , this . firestore ) ;
1521
1521
}
@@ -1947,12 +1947,9 @@ export class Query implements firestore.Query {
1947
1947
}
1948
1948
1949
1949
private validateNewFilter ( filter : Filter ) : void {
1950
- if ( filter instanceof RelationFilter ) {
1951
- const arrayOps = [
1952
- RelationOp . ARRAY_CONTAINS ,
1953
- RelationOp . ARRAY_CONTAINS_ANY
1954
- ] ;
1955
- const disjunctiveOps = [ RelationOp . IN , RelationOp . ARRAY_CONTAINS_ANY ] ;
1950
+ if ( filter instanceof FieldFilter ) {
1951
+ const arrayOps = [ Operator . ARRAY_CONTAINS , Operator . ARRAY_CONTAINS_ANY ] ;
1952
+ const disjunctiveOps = [ Operator . IN , Operator . ARRAY_CONTAINS_ANY ] ;
1956
1953
const isArrayOp = arrayOps . indexOf ( filter . op ) >= 0 ;
1957
1954
const isDisjunctiveOp = disjunctiveOps . indexOf ( filter . op ) >= 0 ;
1958
1955
@@ -1978,12 +1975,12 @@ export class Query implements firestore.Query {
1978
1975
} else if ( isDisjunctiveOp || isArrayOp ) {
1979
1976
// You can have at most 1 disjunctive filter and 1 array filter. Check if
1980
1977
// the new filter conflicts with an existing one.
1981
- let conflictingOp : RelationOp | null = null ;
1978
+ let conflictingOp : Operator | null = null ;
1982
1979
if ( isDisjunctiveOp ) {
1983
- conflictingOp = this . _query . findRelationOpFilter ( disjunctiveOps ) ;
1980
+ conflictingOp = this . _query . findFilterOperator ( disjunctiveOps ) ;
1984
1981
}
1985
1982
if ( conflictingOp === null && isArrayOp ) {
1986
- conflictingOp = this . _query . findRelationOpFilter ( arrayOps ) ;
1983
+ conflictingOp = this . _query . findFilterOperator ( arrayOps ) ;
1987
1984
}
1988
1985
if ( conflictingOp != null ) {
1989
1986
// We special case when it's a duplicate op to give a slightly clearer error message.
0 commit comments