Skip to content
Open

search #7949

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f2edb43
Stub out search API
MarkDuckworth Feb 13, 2026
94b26bb
Merge branch 'main' of github.com:firebase/firebase-android-sdk into …
MarkDuckworth Feb 13, 2026
8c3693b
Renaming search api members
MarkDuckworth Mar 19, 2026
2d6d3d9
search stage implementation
MarkDuckworth Mar 19, 2026
80e1a74
Implement equals and hashCode for SearchStage
MarkDuckworth Mar 19, 2026
7d85eab
spotless
MarkDuckworth Mar 20, 2026
5891b20
JavaDoc cleanup and TODOs
MarkDuckworth Mar 20, 2026
f3685d2
JavaDoc updates. Remove internal from features going public. New tests
MarkDuckworth Mar 20, 2026
91a3b57
Apply @Beta annotation to search features
MarkDuckworth Mar 20, 2026
551450a
Add unit test for search stage encoding and fix encoding issues
MarkDuckworth Mar 20, 2026
30f108f
Merge branch 'main' of github.com:firebase/firebase-android-sdk into …
MarkDuckworth Mar 20, 2026
b3f7591
Changelog
MarkDuckworth Mar 20, 2026
0246e72
Merge branch 'main' of github.com:firebase/firebase-android-sdk into …
MarkDuckworth Mar 26, 2026
3154774
fix copyright
MarkDuckworth Mar 26, 2026
c38030b
Beta on QueryEnhancement
MarkDuckworth Mar 26, 2026
89ce381
only run search tests if backend edition is enterprise
MarkDuckworth Mar 26, 2026
2e0cbdf
refdoc review
MarkDuckworth Mar 26, 2026
d30df17
add and fix examples
MarkDuckworth Mar 26, 2026
1eb8364
Update version
MarkDuckworth Mar 26, 2026
350a394
Fix changelog entry for search
MarkDuckworth Mar 26, 2026
50c218c
Merge branch 'main' of github.com:firebase/firebase-android-sdk into …
MarkDuckworth Mar 28, 2026
2902c07
Removing search APIs that will not be available at launch
MarkDuckworth Mar 29, 2026
18e5d72
Disable search integration tests unless flag used
MarkDuckworth Mar 29, 2026
29421c5
api.txt update
MarkDuckworth Mar 29, 2026
8899496
Add tests for geoDistance in add fields
MarkDuckworth Mar 29, 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: 1 addition & 1 deletion firebase-config/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# limitations under the License.
#

version=23.0.2
version=23.1.0
latestReleasedVersion=23.0.1
android.enableUnitTestBinaryResources=true

2 changes: 2 additions & 0 deletions firebase-firestore/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
[#7893](https://github.com/firebase/firebase-android-sdk/pull/7893)
- [feature] Added support for `rand` and `trunc` Pipeline expressions.
[#7886](https://github.com/firebase/firebase-android-sdk/pull/7886)
- [feature] Add public preview support for full-text search and geo search.
[#7949](https://github.com/firebase/firebase-android-sdk/pull/7949)

# 26.1.2

Expand Down
27 changes: 27 additions & 0 deletions firebase-firestore/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,7 @@ package com.google.firebase.firestore {
method public com.google.firebase.firestore.Pipeline replaceWith(String field);
method public com.google.firebase.firestore.Pipeline sample(com.google.firebase.firestore.pipeline.SampleStage sample);
method public com.google.firebase.firestore.Pipeline sample(int documents);
method @com.google.common.annotations.Beta public com.google.firebase.firestore.Pipeline search(com.google.firebase.firestore.pipeline.SearchStage searchStage);
method public com.google.firebase.firestore.Pipeline select(com.google.firebase.firestore.pipeline.Selectable selection, java.lang.Object... additionalSelections);
method public com.google.firebase.firestore.Pipeline select(String fieldName, java.lang.Object... additionalSelections);
method public com.google.firebase.firestore.Pipeline sort(com.google.firebase.firestore.pipeline.Ordering order, com.google.firebase.firestore.pipeline.Ordering... additionalOrders);
Expand Down Expand Up @@ -997,6 +998,7 @@ package com.google.firebase.firestore.pipeline {
method public static final com.google.firebase.firestore.pipeline.Expression documentId(com.google.firebase.firestore.DocumentReference docRef);
method public static final com.google.firebase.firestore.pipeline.Expression documentId(com.google.firebase.firestore.pipeline.Expression documentPath);
method public static final com.google.firebase.firestore.pipeline.Expression documentId(String documentPath);
method @com.google.common.annotations.Beta public static final com.google.firebase.firestore.pipeline.BooleanExpression documentMatches(String rquery);
method public final com.google.firebase.firestore.pipeline.Expression dotProduct(com.google.firebase.firestore.pipeline.Expression vector);
method public static final com.google.firebase.firestore.pipeline.Expression dotProduct(com.google.firebase.firestore.pipeline.Expression vector1, com.google.firebase.firestore.pipeline.Expression vector2);
method public static final com.google.firebase.firestore.pipeline.Expression dotProduct(com.google.firebase.firestore.pipeline.Expression vector1, com.google.firebase.firestore.VectorValue vector2);
Expand Down Expand Up @@ -1045,6 +1047,8 @@ package com.google.firebase.firestore.pipeline {
method public final com.google.firebase.firestore.pipeline.Expression floor();
method public static final com.google.firebase.firestore.pipeline.Expression floor(com.google.firebase.firestore.pipeline.Expression numericExpr);
method public static final com.google.firebase.firestore.pipeline.Expression floor(String numericField);
method @com.google.common.annotations.Beta public static final com.google.firebase.firestore.pipeline.Expression geoDistance(com.google.firebase.firestore.pipeline.Field field, com.google.firebase.firestore.GeoPoint location);
method @com.google.common.annotations.Beta public static final com.google.firebase.firestore.pipeline.Expression geoDistance(String fieldName, com.google.firebase.firestore.GeoPoint location);
method public final com.google.firebase.firestore.pipeline.Expression getField(com.google.firebase.firestore.pipeline.Expression keyExpression);
method public static final com.google.firebase.firestore.pipeline.Expression getField(com.google.firebase.firestore.pipeline.Expression expression, com.google.firebase.firestore.pipeline.Expression keyExpression);
method public static final com.google.firebase.firestore.pipeline.Expression getField(com.google.firebase.firestore.pipeline.Expression expression, String key);
Expand Down Expand Up @@ -1211,6 +1215,7 @@ package com.google.firebase.firestore.pipeline {
method public final com.google.firebase.firestore.pipeline.Expression roundToPrecision(int decimalPlace);
method public static final com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, com.google.firebase.firestore.pipeline.Expression decimalPlace);
method public static final com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, int decimalPlace);
method @com.google.common.annotations.Beta public static final com.google.firebase.firestore.pipeline.Expression score();
method public final com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.Blob delimiter);
method public final com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression delimiter);
method public static final com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, com.google.firebase.firestore.Blob delimiter);
Expand Down Expand Up @@ -1493,6 +1498,7 @@ package com.google.firebase.firestore.pipeline {
method public com.google.firebase.firestore.pipeline.Expression documentId(com.google.firebase.firestore.DocumentReference docRef);
method public com.google.firebase.firestore.pipeline.Expression documentId(com.google.firebase.firestore.pipeline.Expression documentPath);
method public com.google.firebase.firestore.pipeline.Expression documentId(String documentPath);
method @com.google.common.annotations.Beta public com.google.firebase.firestore.pipeline.BooleanExpression documentMatches(String rquery);
method public com.google.firebase.firestore.pipeline.Expression dotProduct(com.google.firebase.firestore.pipeline.Expression vector1, com.google.firebase.firestore.pipeline.Expression vector2);
method public com.google.firebase.firestore.pipeline.Expression dotProduct(com.google.firebase.firestore.pipeline.Expression vector1, com.google.firebase.firestore.VectorValue vector2);
method public com.google.firebase.firestore.pipeline.Expression dotProduct(com.google.firebase.firestore.pipeline.Expression vector1, double[] vector2);
Expand Down Expand Up @@ -1525,6 +1531,8 @@ package com.google.firebase.firestore.pipeline {
method public com.google.firebase.firestore.pipeline.Field field(String name);
method public com.google.firebase.firestore.pipeline.Expression floor(com.google.firebase.firestore.pipeline.Expression numericExpr);
method public com.google.firebase.firestore.pipeline.Expression floor(String numericField);
method @com.google.common.annotations.Beta public com.google.firebase.firestore.pipeline.Expression geoDistance(com.google.firebase.firestore.pipeline.Field field, com.google.firebase.firestore.GeoPoint location);
method @com.google.common.annotations.Beta public com.google.firebase.firestore.pipeline.Expression geoDistance(String fieldName, com.google.firebase.firestore.GeoPoint location);
method public com.google.firebase.firestore.pipeline.Expression getField(com.google.firebase.firestore.pipeline.Expression expression, com.google.firebase.firestore.pipeline.Expression keyExpression);
method public com.google.firebase.firestore.pipeline.Expression getField(com.google.firebase.firestore.pipeline.Expression expression, String key);
method public com.google.firebase.firestore.pipeline.Expression getField(String fieldName, com.google.firebase.firestore.pipeline.Expression keyExpression);
Expand Down Expand Up @@ -1638,6 +1646,7 @@ package com.google.firebase.firestore.pipeline {
method public com.google.firebase.firestore.pipeline.Expression roundToPrecision(com.google.firebase.firestore.pipeline.Expression numericExpr, int decimalPlace);
method public com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, com.google.firebase.firestore.pipeline.Expression decimalPlace);
method public com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, int decimalPlace);
method @com.google.common.annotations.Beta public com.google.firebase.firestore.pipeline.Expression score();
method public com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, com.google.firebase.firestore.Blob delimiter);
method public com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, com.google.firebase.firestore.pipeline.Expression delimiter);
method public com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, String delimiter);
Expand Down Expand Up @@ -1741,6 +1750,7 @@ package com.google.firebase.firestore.pipeline {
}

public final class Field extends com.google.firebase.firestore.pipeline.Selectable {
method @com.google.common.annotations.Beta public com.google.firebase.firestore.pipeline.Expression geoDistance(com.google.firebase.firestore.GeoPoint location);
field public static final com.google.firebase.firestore.pipeline.Field.Companion Companion;
}

Expand Down Expand Up @@ -1840,6 +1850,19 @@ package com.google.firebase.firestore.pipeline {
property public final error.NonExistentClass PERCENT;
}

@com.google.common.annotations.Beta public final class SearchStage extends com.google.firebase.firestore.pipeline.Stage<com.google.firebase.firestore.pipeline.SearchStage> {
method public com.google.firebase.firestore.pipeline.SearchStage withAddFields(com.google.firebase.firestore.pipeline.Selectable field, com.google.firebase.firestore.pipeline.Selectable... additionalFields);
method public static com.google.firebase.firestore.pipeline.SearchStage withQuery(com.google.firebase.firestore.pipeline.BooleanExpression query);
method public static com.google.firebase.firestore.pipeline.SearchStage withQuery(String rquery);
method public com.google.firebase.firestore.pipeline.SearchStage withSort(com.google.firebase.firestore.pipeline.Ordering order, com.google.firebase.firestore.pipeline.Ordering... additionalOrderings);
field public static final com.google.firebase.firestore.pipeline.SearchStage.Companion Companion;
}

public static final class SearchStage.Companion {
method public com.google.firebase.firestore.pipeline.SearchStage withQuery(com.google.firebase.firestore.pipeline.BooleanExpression query);
method public com.google.firebase.firestore.pipeline.SearchStage withQuery(String rquery);
}

public abstract class Selectable extends com.google.firebase.firestore.pipeline.Expression {
ctor public Selectable();
}
Expand All @@ -1851,6 +1874,10 @@ package com.google.firebase.firestore.pipeline {
method protected final T withOption(String key, error.NonExistentClass value);
method public final T withOption(String key, String value);
method public final T withOption(String key, long value);
field public static final com.google.firebase.firestore.pipeline.Stage.Companion Companion;
}

public static final class Stage.Companion {
}

public final class SubcollectionSource extends com.google.firebase.firestore.pipeline.Stage<com.google.firebase.firestore.pipeline.SubcollectionSource> {
Expand Down
Loading
Loading