Skip to content

Commit 2888ef9

Browse files
committed
Merge branch 'MutableStateFlowUseUpdateInsteadOfCompareAndSet' into FirebaseDataConnectImplState
2 parents 9658ae4 + 3aef735 commit 2888ef9

File tree

25 files changed

+284
-99
lines changed

25 files changed

+284
-99
lines changed

.github/workflows/check-vertexai-responses.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ on: pull_request
55
jobs:
66
check-version:
77
runs-on: ubuntu-latest
8+
permissions:
9+
pull-requests: write
810
steps:
911
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1012
- name: Clone mock responses

.github/workflows/dataconnect.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,3 +259,27 @@ jobs:
259259
- uses: docker://rhysd/actionlint:1.7.7
260260
with:
261261
args: -color /github/workspace/.github/workflows/dataconnect.yml
262+
263+
send-notifications:
264+
needs: [integration-test, actionlint-dataconnect-yml]
265+
if: always()
266+
permissions:
267+
issues: write
268+
runs-on: ubuntu-latest
269+
steps:
270+
- name: Post Comment on Issue #6857
271+
if: github.event_name == 'schedule'
272+
env:
273+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
274+
run: |
275+
set -euo pipefail
276+
277+
cat >message.txt <<EOF
278+
Result of workflow ${{ github.workflow }} at ${{ github.ref }}: ${{ job.status }}
279+
${{ github.event.repository.html_url }}/actions/runs/${{ github.run_id }}
280+
job=${{ github.job }} run_id=${{ github.run_id }} run_number=${{ github.run_number }} run_attempt=${{ github.run_attempt }}
281+
EOF
282+
283+
echo "Posting comment on GitHub Issue: https://github.com/firebase/firebase-android-sdk/issues/6857:"
284+
cat message.txt
285+
gh issue comment 6857 --body-file message.txt -R ${{ github.repository }}

.github/workflows/metalava-semver-check.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ jobs:
99
permissions:
1010
pull-requests: write
1111
steps:
12-
- name: Checkout main
12+
- name: Checkout PR
1313
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
14-
with:
15-
ref: ${{ github.base_ref }}
1614

1715
- name: Set up JDK 17
1816
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
@@ -21,13 +19,13 @@ jobs:
2119
distribution: temurin
2220
cache: gradle
2321

24-
- name: Copy previous api.txt files
22+
- name: Copy new api.txt files
2523
run: ./gradlew copyApiTxtFile
2624

27-
- name: Checkout PR
25+
- name: Checkout main
2826
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
2927
with:
30-
ref: ${{ github.head_ref }}
28+
ref: ${{ github.base_ref }}
3129
clean: false
3230

3331
- name: Run Metalava SemVer check

ci/fireci/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dependencies = [
1414
"pandas==1.5.3",
1515
"PyGithub==1.58.2",
1616
"pystache==0.6.0",
17-
"requests==2.31.0",
17+
"requests==2.32.2",
1818
"seaborn==0.12.2",
1919
"PyYAML==6.0.1",
2020
"termcolor==2.4.0",

firebase-config/bandwagoner/src/main/AndroidManifest.xml

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@
1717

1818
<!-- The first number in the version name distinguishes this as the 3P app version. -->
1919
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
20-
package="com.googletest.firebase.remoteconfig.bandwagoner"
21-
android:versionCode="1"
22-
android:versionName="3.0.0">
20+
android:versionCode="1"
21+
android:versionName="3.0.0">
2322

2423

2524
<!--Needed for Firebase Installations getToken method.-->
@@ -30,22 +29,22 @@
3029
<uses-permission android:name="android.permission.WAKE_LOCK"/>
3130

3231
<application
33-
android:name=".MainApplication"
34-
android:label="Bandwagoner"
35-
android:theme="@style/LightNoActionBarTheme">
36-
37-
<activity android:exported="true" android:name=".MainActivity">
38-
<intent-filter>
39-
<action android:name="android.intent.action.MAIN" />
40-
<category android:name="android.intent.category.LAUNCHER" />
41-
</intent-filter>
42-
</activity>
43-
44-
<service android:exported="false" android:name="com.google.firebase.components.ComponentDiscoveryService">
45-
<meta-data
46-
android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar"
47-
android:value="com.google.firebase.components.ComponentRegistrar"/>
48-
</service>
32+
android:name=".MainApplication"
33+
android:label="Bandwagoner"
34+
android:theme="@style/LightNoActionBarTheme">
35+
36+
<activity android:exported="true" android:name=".MainActivity">
37+
<intent-filter>
38+
<action android:name="android.intent.action.MAIN" />
39+
<category android:name="android.intent.category.LAUNCHER" />
40+
</intent-filter>
41+
</activity>
42+
43+
<service android:exported="false" android:name="com.google.firebase.components.ComponentDiscoveryService">
44+
<meta-data
45+
android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar"
46+
android:value="com.google.firebase.components.ComponentRegistrar"/>
47+
</service>
4948

5049
</application>
5150

firebase-firestore/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Unreleased
2-
2+
* [fixed] Fixed the `null` value handling in `whereNotEqualTo` and `whereNotIn` filters.
33

44
# 25.1.3
55
* [fixed] Use lazy encoding in UTF-8 encoded byte comparison for strings to solve performance issues. [#6706](//github.com/firebase/firebase-android-sdk/pull/6706)

firebase-firestore/src/androidTest/java/com/google/firebase/firestore/CompositeIndexQueryTest.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,24 +91,27 @@ public void testOrQueriesWithCompositeIndexes() {
9191

9292
Query query = collection.where(or(greaterThan("a", 2), equalTo("b", 1)));
9393
// with one inequality: a>2 || b==1.
94-
testHelper.assertOnlineAndOfflineResultsMatch(testHelper.query(query), "doc5", "doc2", "doc3");
94+
testHelper.assertOnlineAndOfflineResultsMatch(
95+
collection, testHelper.query(query), "doc5", "doc2", "doc3");
9596

9697
// Test with limits (implicit order by ASC): (a==1) || (b > 0) LIMIT 2
9798
query = collection.where(or(equalTo("a", 1), greaterThan("b", 0))).limit(2);
98-
testHelper.assertOnlineAndOfflineResultsMatch(testHelper.query(query), "doc1", "doc2");
99+
testHelper.assertOnlineAndOfflineResultsMatch(
100+
collection, testHelper.query(query), "doc1", "doc2");
99101

100102
// Test with limits (explicit order by): (a==1) || (b > 0) LIMIT_TO_LAST 2
101103
// Note: The public query API does not allow implicit ordering when limitToLast is used.
102104
query = collection.where(or(equalTo("a", 1), greaterThan("b", 0))).limitToLast(2).orderBy("b");
103-
testHelper.assertOnlineAndOfflineResultsMatch(testHelper.query(query), "doc3", "doc4");
105+
testHelper.assertOnlineAndOfflineResultsMatch(
106+
collection, testHelper.query(query), "doc3", "doc4");
104107

105108
// Test with limits (explicit order by ASC): (a==2) || (b == 1) ORDER BY a LIMIT 1
106109
query = collection.where(or(equalTo("a", 2), equalTo("b", 1))).limit(1).orderBy("a");
107-
testHelper.assertOnlineAndOfflineResultsMatch(testHelper.query(query), "doc5");
110+
testHelper.assertOnlineAndOfflineResultsMatch(collection, testHelper.query(query), "doc5");
108111

109112
// Test with limits (explicit order by DESC): (a==2) || (b == 1) ORDER BY a LIMIT_TO_LAST 1
110113
query = collection.where(or(equalTo("a", 2), equalTo("b", 1))).limitToLast(1).orderBy("a");
111-
testHelper.assertOnlineAndOfflineResultsMatch(testHelper.query(query), "doc2");
114+
testHelper.assertOnlineAndOfflineResultsMatch(collection, testHelper.query(query), "doc2");
112115
}
113116

114117
@Test
@@ -771,17 +774,17 @@ public void testMultipleInequalityFromCacheAndFromServer() {
771774

772775
// implicit AND: a != 1 && b < 2
773776
Query query1 = testHelper.query(collection).whereNotEqualTo("a", 1).whereLessThan("b", 2);
774-
testHelper.assertOnlineAndOfflineResultsMatch(query1, "doc2");
777+
testHelper.assertOnlineAndOfflineResultsMatch(collection, query1, "doc2");
775778

776779
// explicit AND: a != 1 && b < 2
777780
Query query2 = testHelper.query(collection).where(and(notEqualTo("a", 1), lessThan("b", 2)));
778-
testHelper.assertOnlineAndOfflineResultsMatch(query2, "doc2");
781+
testHelper.assertOnlineAndOfflineResultsMatch(collection, query2, "doc2");
779782

780783
// explicit AND: a < 3 && b not-in [2, 3]
781784
// Implicitly ordered by: a asc, b asc, __name__ asc
782785
Query query3 =
783786
testHelper.query(collection).where(and(lessThan("a", 3), notInArray("b", asList(2, 3))));
784-
testHelper.assertOnlineAndOfflineResultsMatch(query3, "doc1", "doc5", "doc2");
787+
testHelper.assertOnlineAndOfflineResultsMatch(collection, query3, "doc1", "doc5", "doc2");
785788

786789
// a <3 && b != 0, ordered by: b desc, a desc, __name__ desc
787790
Query query4 =
@@ -791,11 +794,11 @@ public void testMultipleInequalityFromCacheAndFromServer() {
791794
.whereNotEqualTo("b", 0)
792795
.orderBy("b", Direction.DESCENDING)
793796
.limit(2);
794-
testHelper.assertOnlineAndOfflineResultsMatch(query4, "doc4", "doc2");
797+
testHelper.assertOnlineAndOfflineResultsMatch(collection, query4, "doc4", "doc2");
795798

796799
// explicit OR: a>2 || b<1.
797800
Query query5 = testHelper.query(collection).where(or(greaterThan("a", 2), lessThan("b", 1)));
798-
testHelper.assertOnlineAndOfflineResultsMatch(query5, "doc1", "doc3");
801+
testHelper.assertOnlineAndOfflineResultsMatch(collection, query5, "doc1", "doc3");
799802
}
800803

801804
@Test

firebase-firestore/src/androidTest/java/com/google/firebase/firestore/FirestoreTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,7 +1651,7 @@ public void sdkOrdersQueryByDocumentIdTheSameWayOnlineAndOffline() {
16511651
"a");
16521652

16531653
// Run query with snapshot listener
1654-
checkOnlineAndOfflineResultsMatch(orderedQuery, expectedDocIds.toArray(new String[0]));
1654+
checkOnlineAndOfflineResultsMatch(colRef, orderedQuery, expectedDocIds.toArray(new String[0]));
16551655
}
16561656

16571657
@Test
@@ -1708,7 +1708,7 @@ public void snapshotListenerSortsUnicodeStringsAsServer() {
17081708
assertTrue(getSnapshotDocIds.equals(expectedDocIds));
17091709
assertTrue(watchSnapshotDocIds.equals(expectedDocIds));
17101710

1711-
checkOnlineAndOfflineResultsMatch(orderedQuery, expectedDocIds.toArray(new String[0]));
1711+
checkOnlineAndOfflineResultsMatch(colRef, orderedQuery, expectedDocIds.toArray(new String[0]));
17121712
}
17131713

17141714
@Test
@@ -1765,7 +1765,7 @@ public void snapshotListenerSortsUnicodeStringsInArrayAsServer() {
17651765
assertTrue(getSnapshotDocIds.equals(expectedDocIds));
17661766
assertTrue(watchSnapshotDocIds.equals(expectedDocIds));
17671767

1768-
checkOnlineAndOfflineResultsMatch(orderedQuery, expectedDocIds.toArray(new String[0]));
1768+
checkOnlineAndOfflineResultsMatch(colRef, orderedQuery, expectedDocIds.toArray(new String[0]));
17691769
}
17701770

17711771
@Test
@@ -1822,7 +1822,7 @@ public void snapshotListenerSortsUnicodeStringsInMapAsServer() {
18221822
assertTrue(getSnapshotDocIds.equals(expectedDocIds));
18231823
assertTrue(watchSnapshotDocIds.equals(expectedDocIds));
18241824

1825-
checkOnlineAndOfflineResultsMatch(orderedQuery, expectedDocIds.toArray(new String[0]));
1825+
checkOnlineAndOfflineResultsMatch(colRef, orderedQuery, expectedDocIds.toArray(new String[0]));
18261826
}
18271827

18281828
@Test
@@ -1879,7 +1879,7 @@ public void snapshotListenerSortsUnicodeStringsInMapKeyAsServer() {
18791879
assertTrue(getSnapshotDocIds.equals(expectedDocIds));
18801880
assertTrue(watchSnapshotDocIds.equals(expectedDocIds));
18811881

1882-
checkOnlineAndOfflineResultsMatch(orderedQuery, expectedDocIds.toArray(new String[0]));
1882+
checkOnlineAndOfflineResultsMatch(colRef, orderedQuery, expectedDocIds.toArray(new String[0]));
18831883
}
18841884

18851885
@Test
@@ -1937,7 +1937,7 @@ public void snapshotListenerSortsUnicodeStringsInDocumentKeyAsServer() {
19371937
assertTrue(getSnapshotDocIds.equals(expectedDocIds));
19381938
assertTrue(watchSnapshotDocIds.equals(expectedDocIds));
19391939

1940-
checkOnlineAndOfflineResultsMatch(orderedQuery, expectedDocIds.toArray(new String[0]));
1940+
checkOnlineAndOfflineResultsMatch(colRef, orderedQuery, expectedDocIds.toArray(new String[0]));
19411941
}
19421942

19431943
@Test
@@ -1986,6 +1986,6 @@ public void snapshotListenerSortsInvalidUnicodeStringsAsServer() {
19861986
assertTrue(getSnapshotDocIds.equals(expectedDocIds));
19871987
assertTrue(watchSnapshotDocIds.equals(expectedDocIds));
19881988

1989-
checkOnlineAndOfflineResultsMatch(orderedQuery, expectedDocIds.toArray(new String[0]));
1989+
checkOnlineAndOfflineResultsMatch(colRef, orderedQuery, expectedDocIds.toArray(new String[0]));
19901990
}
19911991
}

0 commit comments

Comments
 (0)