Skip to content

Commit 2eca2cf

Browse files
authored
feat(firestore): add array expressions (firebase#7989)
1 parent 619471e commit 2eca2cf

4 files changed

Lines changed: 624 additions & 0 deletions

File tree

firebase-firestore/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Unreleased
22

3+
- [feature] Added support for Pipeline expressions `arraySlice`, `arraySliceToEnd`, `arrayFilter`, `arrayTransform` and `arrayTransformWithIndex`.
4+
[#7989](https://github.com/firebase/firebase-android-sdk/pull/7989)
35
- [feature] Added support for `parent` Pipeline expression.
46
[#7999](https://github.com/firebase/firebase-android-sdk/pull/7999)
57
- [feature] Added support for Pipeline expressions `ifNull` and `coalesce`.

firebase-firestore/api.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,9 @@ package com.google.firebase.firestore.pipeline {
848848
method public static final com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression arrayExpression);
849849
method public static final com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, java.util.List<?> values);
850850
method public final com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(java.util.List<?> values);
851+
method public static final com.google.firebase.firestore.pipeline.Expression arrayFilter(com.google.firebase.firestore.pipeline.Expression array, String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
852+
method public final com.google.firebase.firestore.pipeline.Expression arrayFilter(String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
853+
method public static final com.google.firebase.firestore.pipeline.Expression arrayFilter(String arrayFieldName, String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
851854
method public final com.google.firebase.firestore.pipeline.Expression arrayFirst();
852855
method public static final com.google.firebase.firestore.pipeline.Expression arrayFirst(com.google.firebase.firestore.pipeline.Expression array);
853856
method public static final com.google.firebase.firestore.pipeline.Expression arrayFirst(String arrayFieldName);
@@ -905,9 +908,27 @@ package com.google.firebase.firestore.pipeline {
905908
method public final com.google.firebase.firestore.pipeline.Expression arrayReverse();
906909
method public static final com.google.firebase.firestore.pipeline.Expression arrayReverse(com.google.firebase.firestore.pipeline.Expression array);
907910
method public static final com.google.firebase.firestore.pipeline.Expression arrayReverse(String arrayFieldName);
911+
method public final com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression offset, com.google.firebase.firestore.pipeline.Expression length);
912+
method public static final com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression array, com.google.firebase.firestore.pipeline.Expression offset, com.google.firebase.firestore.pipeline.Expression length);
913+
method public static final com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression array, int offset, int length);
914+
method public final com.google.firebase.firestore.pipeline.Expression arraySlice(int offset, int length);
915+
method public static final com.google.firebase.firestore.pipeline.Expression arraySlice(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression offset, com.google.firebase.firestore.pipeline.Expression length);
916+
method public static final com.google.firebase.firestore.pipeline.Expression arraySlice(String arrayFieldName, int offset, int length);
917+
method public final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression offset);
918+
method public static final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression array, com.google.firebase.firestore.pipeline.Expression offset);
919+
method public static final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression array, int offset);
920+
method public final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(int offset);
921+
method public static final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression offset);
922+
method public static final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, int offset);
908923
method public final com.google.firebase.firestore.pipeline.Expression arraySum();
909924
method public static final com.google.firebase.firestore.pipeline.Expression arraySum(com.google.firebase.firestore.pipeline.Expression array);
910925
method public static final com.google.firebase.firestore.pipeline.Expression arraySum(String arrayFieldName);
926+
method public static final com.google.firebase.firestore.pipeline.Expression arrayTransform(com.google.firebase.firestore.pipeline.Expression array, String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
927+
method public final com.google.firebase.firestore.pipeline.Expression arrayTransform(String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
928+
method public static final com.google.firebase.firestore.pipeline.Expression arrayTransform(String arrayFieldName, String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
929+
method public static final com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(com.google.firebase.firestore.pipeline.Expression array, String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
930+
method public final com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
931+
method public static final com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(String arrayFieldName, String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
911932
method public final com.google.firebase.firestore.pipeline.BooleanExpression asBoolean();
912933
method public final com.google.firebase.firestore.pipeline.Ordering ascending();
913934
method public final com.google.firebase.firestore.pipeline.AggregateFunction average();
@@ -1470,6 +1491,8 @@ package com.google.firebase.firestore.pipeline {
14701491
method public com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(com.google.firebase.firestore.pipeline.Expression array, java.util.List<?> values);
14711492
method public com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression arrayExpression);
14721493
method public com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, java.util.List<?> values);
1494+
method public com.google.firebase.firestore.pipeline.Expression arrayFilter(com.google.firebase.firestore.pipeline.Expression array, String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
1495+
method public com.google.firebase.firestore.pipeline.Expression arrayFilter(String arrayFieldName, String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
14731496
method public com.google.firebase.firestore.pipeline.Expression arrayFirst(com.google.firebase.firestore.pipeline.Expression array);
14741497
method public com.google.firebase.firestore.pipeline.Expression arrayFirst(String arrayFieldName);
14751498
method public com.google.firebase.firestore.pipeline.Expression arrayFirstN(com.google.firebase.firestore.pipeline.Expression array, com.google.firebase.firestore.pipeline.Expression n);
@@ -1508,8 +1531,20 @@ package com.google.firebase.firestore.pipeline {
15081531
method public com.google.firebase.firestore.pipeline.Expression arrayMinimumN(String arrayFieldName, int n);
15091532
method public com.google.firebase.firestore.pipeline.Expression arrayReverse(com.google.firebase.firestore.pipeline.Expression array);
15101533
method public com.google.firebase.firestore.pipeline.Expression arrayReverse(String arrayFieldName);
1534+
method public com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression array, com.google.firebase.firestore.pipeline.Expression offset, com.google.firebase.firestore.pipeline.Expression length);
1535+
method public com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression array, int offset, int length);
1536+
method public com.google.firebase.firestore.pipeline.Expression arraySlice(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression offset, com.google.firebase.firestore.pipeline.Expression length);
1537+
method public com.google.firebase.firestore.pipeline.Expression arraySlice(String arrayFieldName, int offset, int length);
1538+
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression array, com.google.firebase.firestore.pipeline.Expression offset);
1539+
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression array, int offset);
1540+
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression offset);
1541+
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, int offset);
15111542
method public com.google.firebase.firestore.pipeline.Expression arraySum(com.google.firebase.firestore.pipeline.Expression array);
15121543
method public com.google.firebase.firestore.pipeline.Expression arraySum(String arrayFieldName);
1544+
method public com.google.firebase.firestore.pipeline.Expression arrayTransform(com.google.firebase.firestore.pipeline.Expression array, String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
1545+
method public com.google.firebase.firestore.pipeline.Expression arrayTransform(String arrayFieldName, String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
1546+
method public com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(com.google.firebase.firestore.pipeline.Expression array, String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
1547+
method public com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(String arrayFieldName, String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
15131548
method public com.google.firebase.firestore.pipeline.Expression bitAnd(com.google.firebase.firestore.pipeline.Expression bits, byte[] bitsOther);
15141549
method public com.google.firebase.firestore.pipeline.Expression bitAnd(com.google.firebase.firestore.pipeline.Expression bits, com.google.firebase.firestore.pipeline.Expression bitsOther);
15151550
method public com.google.firebase.firestore.pipeline.Expression bitAnd(String bitsFieldName, byte[] bitsOther);

0 commit comments

Comments
 (0)