Skip to content

Commit 1f5b6dd

Browse files
authored
feat(firestore): add support for remaining string expressions (#7978)
Adds support for string expressions `ltrim`, `rtrim`, `stringRepeat` `stringReplaceOne` `stringReplaceAll`, `stringIndexOf`. Ported from: googleapis/java-firestore#2326
1 parent 3c7c94c commit 1f5b6dd

6 files changed

Lines changed: 1017 additions & 24 deletions

File tree

firebase-firestore/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
[#7893](https://github.com/firebase/firebase-android-sdk/pull/7893)
1414
- [feature] Added support for `rand` and `trunc` Pipeline expressions.
1515
[#7886](https://github.com/firebase/firebase-android-sdk/pull/7886)
16+
- [feature] Added support for `ltrim`, `rtrim`, `stringIndexOf`, `stringRepeat`, `stringReplaceOne`, and `stringReplaceAll` Pipeline expressions.
17+
[#7978](https://github.com/firebase/firebase-android-sdk/pull/7978)
1618
- [feature] Added support for `mapGet` `mapSet`, `mapEntries`, and `mapKeys` Pipeline expressions.
1719
[#7987](https://github.com/firebase/firebase-android-sdk/pull/7987)
1820

firebase-firestore/api.txt

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,6 +1134,15 @@ package com.google.firebase.firestore.pipeline {
11341134
method public final com.google.firebase.firestore.pipeline.Expression logicalMinimum(com.google.firebase.firestore.pipeline.Expression... others);
11351135
method public final com.google.firebase.firestore.pipeline.Expression logicalMinimum(java.lang.Object... others);
11361136
method public static final com.google.firebase.firestore.pipeline.Expression logicalMinimum(String fieldName, java.lang.Object... others);
1137+
method public final com.google.firebase.firestore.pipeline.Expression ltrim();
1138+
method public static final com.google.firebase.firestore.pipeline.Expression ltrim(com.google.firebase.firestore.pipeline.Expression stringExpression);
1139+
method public static final com.google.firebase.firestore.pipeline.Expression ltrim(String fieldName);
1140+
method public final com.google.firebase.firestore.pipeline.Expression ltrimValue(com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1141+
method public static final com.google.firebase.firestore.pipeline.Expression ltrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1142+
method public static final com.google.firebase.firestore.pipeline.Expression ltrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, String valuesToTrim);
1143+
method public final com.google.firebase.firestore.pipeline.Expression ltrimValue(String valuesToTrim);
1144+
method public static final com.google.firebase.firestore.pipeline.Expression ltrimValue(String fieldName, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1145+
method public static final com.google.firebase.firestore.pipeline.Expression ltrimValue(String fieldName, String valuesToTrim);
11371146
method public static final com.google.firebase.firestore.pipeline.Expression map(java.util.Map<java.lang.String,?> elements);
11381147
method public final com.google.firebase.firestore.pipeline.Expression mapEntries();
11391148
method public static final com.google.firebase.firestore.pipeline.Expression mapEntries(com.google.firebase.firestore.pipeline.Expression mapExpr);
@@ -1235,6 +1244,15 @@ package com.google.firebase.firestore.pipeline {
12351244
method public final com.google.firebase.firestore.pipeline.Expression roundToPrecision(int decimalPlace);
12361245
method public static final com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, com.google.firebase.firestore.pipeline.Expression decimalPlace);
12371246
method public static final com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, int decimalPlace);
1247+
method public final com.google.firebase.firestore.pipeline.Expression rtrim();
1248+
method public static final com.google.firebase.firestore.pipeline.Expression rtrim(com.google.firebase.firestore.pipeline.Expression stringExpression);
1249+
method public static final com.google.firebase.firestore.pipeline.Expression rtrim(String fieldName);
1250+
method public final com.google.firebase.firestore.pipeline.Expression rtrimValue(com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1251+
method public static final com.google.firebase.firestore.pipeline.Expression rtrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1252+
method public static final com.google.firebase.firestore.pipeline.Expression rtrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, String valuesToTrim);
1253+
method public final com.google.firebase.firestore.pipeline.Expression rtrimValue(String valuesToTrim);
1254+
method public static final com.google.firebase.firestore.pipeline.Expression rtrimValue(String fieldName, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1255+
method public static final com.google.firebase.firestore.pipeline.Expression rtrimValue(String fieldName, String valuesToTrim);
12381256
method public final com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.Blob delimiter);
12391257
method public final com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression delimiter);
12401258
method public static final com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, com.google.firebase.firestore.Blob delimiter);
@@ -1266,6 +1284,30 @@ package com.google.firebase.firestore.pipeline {
12661284
method public final com.google.firebase.firestore.pipeline.BooleanExpression stringContains(String substring);
12671285
method public static final com.google.firebase.firestore.pipeline.BooleanExpression stringContains(String fieldName, com.google.firebase.firestore.pipeline.Expression substring);
12681286
method public static final com.google.firebase.firestore.pipeline.BooleanExpression stringContains(String fieldName, String substring);
1287+
method public final com.google.firebase.firestore.pipeline.Expression stringIndexOf(com.google.firebase.firestore.pipeline.Expression substring);
1288+
method public static final com.google.firebase.firestore.pipeline.Expression stringIndexOf(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression substring);
1289+
method public static final com.google.firebase.firestore.pipeline.Expression stringIndexOf(com.google.firebase.firestore.pipeline.Expression stringExpression, String substring);
1290+
method public final com.google.firebase.firestore.pipeline.Expression stringIndexOf(String substring);
1291+
method public static final com.google.firebase.firestore.pipeline.Expression stringIndexOf(String fieldName, com.google.firebase.firestore.pipeline.Expression substring);
1292+
method public static final com.google.firebase.firestore.pipeline.Expression stringIndexOf(String fieldName, String substring);
1293+
method public final com.google.firebase.firestore.pipeline.Expression stringRepeat(com.google.firebase.firestore.pipeline.Expression count);
1294+
method public static final com.google.firebase.firestore.pipeline.Expression stringRepeat(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression count);
1295+
method public static final com.google.firebase.firestore.pipeline.Expression stringRepeat(com.google.firebase.firestore.pipeline.Expression stringExpression, int count);
1296+
method public final com.google.firebase.firestore.pipeline.Expression stringRepeat(int count);
1297+
method public static final com.google.firebase.firestore.pipeline.Expression stringRepeat(String fieldName, com.google.firebase.firestore.pipeline.Expression count);
1298+
method public static final com.google.firebase.firestore.pipeline.Expression stringRepeat(String fieldName, int count);
1299+
method public final com.google.firebase.firestore.pipeline.Expression stringReplaceAll(com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1300+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceAll(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1301+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceAll(com.google.firebase.firestore.pipeline.Expression stringExpression, String oldValue, String newValue);
1302+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceAll(String fieldName, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1303+
method public final com.google.firebase.firestore.pipeline.Expression stringReplaceAll(String oldValue, String newValue);
1304+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceAll(String fieldName, String oldValue, String newValue);
1305+
method public final com.google.firebase.firestore.pipeline.Expression stringReplaceOne(com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1306+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceOne(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1307+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceOne(com.google.firebase.firestore.pipeline.Expression stringExpression, String oldValue, String newValue);
1308+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceOne(String fieldName, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1309+
method public final com.google.firebase.firestore.pipeline.Expression stringReplaceOne(String oldValue, String newValue);
1310+
method public static final com.google.firebase.firestore.pipeline.Expression stringReplaceOne(String fieldName, String oldValue, String newValue);
12691311
method public final com.google.firebase.firestore.pipeline.Expression stringReverse();
12701312
method public static final com.google.firebase.firestore.pipeline.Expression stringReverse(com.google.firebase.firestore.pipeline.Expression str);
12711313
method public static final com.google.firebase.firestore.pipeline.Expression stringReverse(String fieldName);
@@ -1607,6 +1649,12 @@ package com.google.firebase.firestore.pipeline {
16071649
method public com.google.firebase.firestore.pipeline.Expression logicalMaximum(String fieldName, java.lang.Object... others);
16081650
method public com.google.firebase.firestore.pipeline.Expression logicalMinimum(com.google.firebase.firestore.pipeline.Expression expr, java.lang.Object... others);
16091651
method public com.google.firebase.firestore.pipeline.Expression logicalMinimum(String fieldName, java.lang.Object... others);
1652+
method public com.google.firebase.firestore.pipeline.Expression ltrim(com.google.firebase.firestore.pipeline.Expression stringExpression);
1653+
method public com.google.firebase.firestore.pipeline.Expression ltrim(String fieldName);
1654+
method public com.google.firebase.firestore.pipeline.Expression ltrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1655+
method public com.google.firebase.firestore.pipeline.Expression ltrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, String valuesToTrim);
1656+
method public com.google.firebase.firestore.pipeline.Expression ltrimValue(String fieldName, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1657+
method public com.google.firebase.firestore.pipeline.Expression ltrimValue(String fieldName, String valuesToTrim);
16101658
method public com.google.firebase.firestore.pipeline.Expression map(java.util.Map<java.lang.String,?> elements);
16111659
method public com.google.firebase.firestore.pipeline.Expression mapEntries(com.google.firebase.firestore.pipeline.Expression mapExpr);
16121660
method public com.google.firebase.firestore.pipeline.Expression mapEntries(String mapField);
@@ -1678,6 +1726,12 @@ package com.google.firebase.firestore.pipeline {
16781726
method public com.google.firebase.firestore.pipeline.Expression roundToPrecision(com.google.firebase.firestore.pipeline.Expression numericExpr, int decimalPlace);
16791727
method public com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, com.google.firebase.firestore.pipeline.Expression decimalPlace);
16801728
method public com.google.firebase.firestore.pipeline.Expression roundToPrecision(String numericField, int decimalPlace);
1729+
method public com.google.firebase.firestore.pipeline.Expression rtrim(com.google.firebase.firestore.pipeline.Expression stringExpression);
1730+
method public com.google.firebase.firestore.pipeline.Expression rtrim(String fieldName);
1731+
method public com.google.firebase.firestore.pipeline.Expression rtrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1732+
method public com.google.firebase.firestore.pipeline.Expression rtrimValue(com.google.firebase.firestore.pipeline.Expression stringExpression, String valuesToTrim);
1733+
method public com.google.firebase.firestore.pipeline.Expression rtrimValue(String fieldName, com.google.firebase.firestore.pipeline.Expression valuesToTrim);
1734+
method public com.google.firebase.firestore.pipeline.Expression rtrimValue(String fieldName, String valuesToTrim);
16811735
method public com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, com.google.firebase.firestore.Blob delimiter);
16821736
method public com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, com.google.firebase.firestore.pipeline.Expression delimiter);
16831737
method public com.google.firebase.firestore.pipeline.Expression split(com.google.firebase.firestore.pipeline.Expression value, String delimiter);
@@ -1698,6 +1752,22 @@ package com.google.firebase.firestore.pipeline {
16981752
method public com.google.firebase.firestore.pipeline.BooleanExpression stringContains(com.google.firebase.firestore.pipeline.Expression stringExpression, String substring);
16991753
method public com.google.firebase.firestore.pipeline.BooleanExpression stringContains(String fieldName, com.google.firebase.firestore.pipeline.Expression substring);
17001754
method public com.google.firebase.firestore.pipeline.BooleanExpression stringContains(String fieldName, String substring);
1755+
method public com.google.firebase.firestore.pipeline.Expression stringIndexOf(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression substring);
1756+
method public com.google.firebase.firestore.pipeline.Expression stringIndexOf(com.google.firebase.firestore.pipeline.Expression stringExpression, String substring);
1757+
method public com.google.firebase.firestore.pipeline.Expression stringIndexOf(String fieldName, com.google.firebase.firestore.pipeline.Expression substring);
1758+
method public com.google.firebase.firestore.pipeline.Expression stringIndexOf(String fieldName, String substring);
1759+
method public com.google.firebase.firestore.pipeline.Expression stringRepeat(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression count);
1760+
method public com.google.firebase.firestore.pipeline.Expression stringRepeat(com.google.firebase.firestore.pipeline.Expression stringExpression, int count);
1761+
method public com.google.firebase.firestore.pipeline.Expression stringRepeat(String fieldName, com.google.firebase.firestore.pipeline.Expression count);
1762+
method public com.google.firebase.firestore.pipeline.Expression stringRepeat(String fieldName, int count);
1763+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceAll(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1764+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceAll(com.google.firebase.firestore.pipeline.Expression stringExpression, String oldValue, String newValue);
1765+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceAll(String fieldName, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1766+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceAll(String fieldName, String oldValue, String newValue);
1767+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceOne(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1768+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceOne(com.google.firebase.firestore.pipeline.Expression stringExpression, String oldValue, String newValue);
1769+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceOne(String fieldName, com.google.firebase.firestore.pipeline.Expression oldValue, com.google.firebase.firestore.pipeline.Expression newValue);
1770+
method public com.google.firebase.firestore.pipeline.Expression stringReplaceOne(String fieldName, String oldValue, String newValue);
17011771
method public com.google.firebase.firestore.pipeline.Expression stringReverse(com.google.firebase.firestore.pipeline.Expression str);
17021772
method public com.google.firebase.firestore.pipeline.Expression stringReverse(String fieldName);
17031773
method public com.google.firebase.firestore.pipeline.Expression substring(com.google.firebase.firestore.pipeline.Expression stringExpression, com.google.firebase.firestore.pipeline.Expression index, com.google.firebase.firestore.pipeline.Expression length);

0 commit comments

Comments
 (0)