Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
086afe3
add subquery support in pipeline
cherylEnkidu Feb 11, 2026
8229020
add missing files
cherylEnkidu Feb 11, 2026
d6d9e4c
fix naming and API style
cherylEnkidu Feb 11, 2026
808f1f2
revert unrelated changes
cherylEnkidu Feb 12, 2026
c569ece
format code
cherylEnkidu Feb 12, 2026
5e8782a
fix docStubs
cherylEnkidu Feb 12, 2026
07bb14f
Add test sample
cherylEnkidu Feb 12, 2026
5b61e26
fix firebase-firestore:compileDebugKotlin
cherylEnkidu Feb 12, 2026
8e9d587
Merge branch 'main' into cheryl/subquery
cherylEnkidu Feb 12, 2026
d9e8bd4
change define to let
cherylEnkidu Feb 12, 2026
51bcf4a
skip the subquery test for now
cherylEnkidu Feb 12, 2026
6141831
Fixed a race condition in
cherylEnkidu Feb 12, 2026
2a61d92
remove is_not_null
cherylEnkidu Feb 12, 2026
cdf2f47
remove nan/null operation
cherylEnkidu Feb 12, 2026
27eb15d
Fix the return type for alias()
cherylEnkidu Feb 12, 2026
4c511df
Add changelog
cherylEnkidu Feb 12, 2026
f8b6cc7
Update API file
cherylEnkidu Feb 12, 2026
71b8c12
Merge branch 'main' into cheryllin/fixRaceCondition
cherylEnkidu Feb 12, 2026
a7da1c3
Update the style
cherylEnkidu Feb 12, 2026
5063b09
fix unit tests
cherylEnkidu Feb 13, 2026
c94879d
format
cherylEnkidu Feb 13, 2026
1fed73e
Update firebase-firestore/src/test/java/com/google/firebase/firestore…
cherylEnkidu Feb 13, 2026
4190e12
fix bug
cherylEnkidu Feb 13, 2026
e041483
Merge branch 'cheryllin/fixRaceCondition' into cheryl/subquery
cherylEnkidu Feb 13, 2026
15bdb67
Merge branch 'main' into cheryl/subquery
cherylEnkidu Feb 13, 2026
1465bdf
add copyright and API changes txt file
cherylEnkidu Feb 13, 2026
8519b82
Merge branch 'main' into cheryl/subquery
cherylEnkidu Feb 17, 2026
a1bb906
Add APIs for getField()
cherylEnkidu Feb 20, 2026
7938f8d
change the documentation
cherylEnkidu Feb 24, 2026
ddc73a0
Add DefineStage API
cherylEnkidu Feb 25, 2026
a382742
Add subcollection source option
cherylEnkidu Feb 25, 2026
ff3f826
Update documentation
cherylEnkidu Feb 27, 2026
e361072
Add tests
cherylEnkidu Feb 27, 2026
a35dcaf
Change tests order
cherylEnkidu Mar 2, 2026
76ea75a
address PR review comments
cherylEnkidu Mar 3, 2026
59ce950
Fix error message in test testDirectExecutionOfSubcollectionPipeline
cherylEnkidu Mar 3, 2026
ed7ac23
Merge branch 'main' into cheryl/subquery
cherylEnkidu Mar 4, 2026
b516779
merge main and format code
cherylEnkidu Mar 4, 2026
64c293a
replace mapGet with getField, add missing test check
cherylEnkidu Mar 5, 2026
ae3fb44
move subcollection from Pipeline class to PipelineSource class
cherylEnkidu Mar 10, 2026
91ce657
enable subcollection tests
cherylEnkidu Mar 10, 2026
5a0a535
remove define stage overload
cherylEnkidu Mar 10, 2026
3d8a6fa
rebase main
cherylEnkidu Mar 11, 2026
f9cb9f9
Add variable reference
cherylEnkidu Mar 17, 2026
2a6aa36
Merge branch 'cheryl/variableReference' into cheryl/subquery
cherylEnkidu Mar 17, 2026
ca03ba5
improve error message
cherylEnkidu Mar 17, 2026
3a898c0
improve readability in test
cherylEnkidu Mar 17, 2026
fc04006
address feedbacks
cherylEnkidu Mar 18, 2026
6f3b052
add kotlin annotation
cherylEnkidu Mar 18, 2026
322b7a3
revert unnecessary changes
cherylEnkidu Mar 18, 2026
9a64aaa
feat(firestore): Add arraySlice and arrayFilter expressions
milaGGL Mar 19, 2026
71c4254
improve the documentation
cherylEnkidu Mar 20, 2026
c3b2ab1
Merge branch 'main' into cheryl/subquery
cherylEnkidu Mar 23, 2026
0c3b1f5
update api file
milaGGL Mar 23, 2026
aa98923
format code
cherylEnkidu Mar 23, 2026
107d608
add change log
cherylEnkidu Mar 23, 2026
843c44f
Merge branch 'main' into cheryl/subquery
cherylEnkidu Mar 24, 2026
62e155e
fix test
cherylEnkidu Mar 25, 2026
6137cec
merge in main
cherylEnkidu Mar 26, 2026
6a60ca8
fix bug
cherylEnkidu Mar 26, 2026
bde8546
fix merge issue
cherylEnkidu Mar 26, 2026
233e821
Merge remote-tracking branch 'origin/cheryl/subquery' into mila/array…
milaGGL Mar 27, 2026
e795692
add array transform
milaGGL Mar 28, 2026
e799ad4
Merge branch 'main' into mila/arraySlice-arrayFilter
milaGGL Mar 30, 2026
13175f4
Update CHANGELOG.md
milaGGL Mar 30, 2026
c4d3c2f
Merge branch 'main' into mila/arraySlice-arrayFilter
milaGGL Mar 31, 2026
f072159
fix static, instance method collision
milaGGL Mar 31, 2026
caaa64a
Merge branch 'main' into mila/arraySlice-arrayFilter
milaGGL Mar 31, 2026
79f1bb8
Merge branch 'main' into mila/arraySlice-arrayFilter
milaGGL Mar 31, 2026
e5d0633
Merge branch 'main' into mila/arraySlice-arrayFilter
milaGGL Apr 1, 2026
d1cf208
Merge branch 'main' into mila/arraySlice-arrayFilter
milaGGL Apr 2, 2026
4405583
Merge branch 'main' into mila/arraySlice-arrayFilter
milaGGL Apr 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions firebase-firestore/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Unreleased

- [feature] Added support for Pipeline expressions `arraySlice`, `arraySliceToEnd`, `arrayFilter`, `arrayTransform` and `arrayTransformWithIndex`.
[#7989](https://github.com/firebase/firebase-android-sdk/pull/7989)
- [feature] Added support for `parent` Pipeline expression.
[#7999](https://github.com/firebase/firebase-android-sdk/pull/7999)
- [feature] Added support for Pipeline expressions `ifNull` and `coalesce`.
Expand Down
35 changes: 35 additions & 0 deletions firebase-firestore/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -848,6 +848,9 @@ package com.google.firebase.firestore.pipeline {
method public static final com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression arrayExpression);
method public static final com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, java.util.List<?> values);
method public final com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(java.util.List<?> values);
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);
method public final com.google.firebase.firestore.pipeline.Expression arrayFilter(String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
method public static final com.google.firebase.firestore.pipeline.Expression arrayFilter(String arrayFieldName, String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
method public final com.google.firebase.firestore.pipeline.Expression arrayFirst();
method public static final com.google.firebase.firestore.pipeline.Expression arrayFirst(com.google.firebase.firestore.pipeline.Expression array);
method public static final com.google.firebase.firestore.pipeline.Expression arrayFirst(String arrayFieldName);
Expand Down Expand Up @@ -905,9 +908,27 @@ package com.google.firebase.firestore.pipeline {
method public final com.google.firebase.firestore.pipeline.Expression arrayReverse();
method public static final com.google.firebase.firestore.pipeline.Expression arrayReverse(com.google.firebase.firestore.pipeline.Expression array);
method public static final com.google.firebase.firestore.pipeline.Expression arrayReverse(String arrayFieldName);
method public final com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression offset, com.google.firebase.firestore.pipeline.Expression length);
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);
method public static final com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression array, int offset, int length);
method public final com.google.firebase.firestore.pipeline.Expression arraySlice(int offset, int length);
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);
method public static final com.google.firebase.firestore.pipeline.Expression arraySlice(String arrayFieldName, int offset, int length);
method public final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression offset);
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);
method public static final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression array, int offset);
method public final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(int offset);
method public static final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression offset);
method public static final com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, int offset);
method public final com.google.firebase.firestore.pipeline.Expression arraySum();
method public static final com.google.firebase.firestore.pipeline.Expression arraySum(com.google.firebase.firestore.pipeline.Expression array);
method public static final com.google.firebase.firestore.pipeline.Expression arraySum(String arrayFieldName);
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);
method public final com.google.firebase.firestore.pipeline.Expression arrayTransform(String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
method public static final com.google.firebase.firestore.pipeline.Expression arrayTransform(String arrayFieldName, String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
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);
method public final com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
method public static final com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(String arrayFieldName, String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
method public final com.google.firebase.firestore.pipeline.BooleanExpression asBoolean();
method public final com.google.firebase.firestore.pipeline.Ordering ascending();
method public final com.google.firebase.firestore.pipeline.AggregateFunction average();
Expand Down Expand Up @@ -1470,6 +1491,8 @@ package com.google.firebase.firestore.pipeline {
method public com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(com.google.firebase.firestore.pipeline.Expression array, java.util.List<?> values);
method public com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression arrayExpression);
method public com.google.firebase.firestore.pipeline.BooleanExpression arrayContainsAny(String arrayFieldName, java.util.List<?> values);
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);
method public com.google.firebase.firestore.pipeline.Expression arrayFilter(String arrayFieldName, String alias, com.google.firebase.firestore.pipeline.BooleanExpression filter);
method public com.google.firebase.firestore.pipeline.Expression arrayFirst(com.google.firebase.firestore.pipeline.Expression array);
method public com.google.firebase.firestore.pipeline.Expression arrayFirst(String arrayFieldName);
method public com.google.firebase.firestore.pipeline.Expression arrayFirstN(com.google.firebase.firestore.pipeline.Expression array, com.google.firebase.firestore.pipeline.Expression n);
Expand Down Expand Up @@ -1508,8 +1531,20 @@ package com.google.firebase.firestore.pipeline {
method public com.google.firebase.firestore.pipeline.Expression arrayMinimumN(String arrayFieldName, int n);
method public com.google.firebase.firestore.pipeline.Expression arrayReverse(com.google.firebase.firestore.pipeline.Expression array);
method public com.google.firebase.firestore.pipeline.Expression arrayReverse(String arrayFieldName);
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);
method public com.google.firebase.firestore.pipeline.Expression arraySlice(com.google.firebase.firestore.pipeline.Expression array, int offset, int length);
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);
method public com.google.firebase.firestore.pipeline.Expression arraySlice(String arrayFieldName, int offset, int length);
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression array, com.google.firebase.firestore.pipeline.Expression offset);
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(com.google.firebase.firestore.pipeline.Expression array, int offset);
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, com.google.firebase.firestore.pipeline.Expression offset);
method public com.google.firebase.firestore.pipeline.Expression arraySliceToEnd(String arrayFieldName, int offset);
method public com.google.firebase.firestore.pipeline.Expression arraySum(com.google.firebase.firestore.pipeline.Expression array);
method public com.google.firebase.firestore.pipeline.Expression arraySum(String arrayFieldName);
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);
method public com.google.firebase.firestore.pipeline.Expression arrayTransform(String arrayFieldName, String elementAlias, com.google.firebase.firestore.pipeline.Expression transform);
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);
method public com.google.firebase.firestore.pipeline.Expression arrayTransformWithIndex(String arrayFieldName, String elementAlias, String indexAlias, com.google.firebase.firestore.pipeline.Expression transform);
method public com.google.firebase.firestore.pipeline.Expression bitAnd(com.google.firebase.firestore.pipeline.Expression bits, byte[] bitsOther);
method public com.google.firebase.firestore.pipeline.Expression bitAnd(com.google.firebase.firestore.pipeline.Expression bits, com.google.firebase.firestore.pipeline.Expression bitsOther);
method public com.google.firebase.firestore.pipeline.Expression bitAnd(String bitsFieldName, byte[] bitsOther);
Expand Down
Loading
Loading