From 4318a1d591eb42bb1026bfd3e97f3a28271da909 Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Fri, 21 Apr 2023 16:54:15 +0000 Subject: [PATCH] Update Android dependencies - Wed Apr 19 2023 (#1276) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update Android dependencies - Wed Apr 19 2023 [Triggered](https://github.com/firebase/firebase-android-sdk/actions/runs/4744622642) by [firebase-android-sdk Apr 19 release](https://github.com/firebase/firebase-android-sdk/commit/0451fa02e009db7291896b4d8113de5ec534cc26). ### Android - com.google.android.gms.play_services_ads → 22.0.0 - com.google.firebase.firebase_bom → 31.5.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/4744629540). * Firestore: Fix args to AggregateQuerySnapshot constructor (#1277) * Fix call to AggregateQuerySnapshot constructor * Fix conflict for coroutines.pro file in google library. Cherry-picked from https://github.com/firebase/firebase-cpp-sdk/pull/1278 to fix the "More than one file was found with OS independent path 'META-INF/com.android.tools/proguard/coroutines.pro'" error --------- Co-authored-by: Jon Simantov * Update release notes with new versions. --------- Co-authored-by: firebase-workflow-trigger-bot Co-authored-by: Jon Simantov Co-authored-by: Denver Coneybeare --- Android/firebase_dependencies.gradle | 4 +- admob/admob_resources/build.gradle | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/invites_resources/build.gradle | 2 +- app_check/app_check_resources/build.gradle | 2 +- auth/auth_resources/build.gradle | 2 +- auth/integration_test/build.gradle | 3 ++ database/database_resources/build.gradle | 2 +- database/integration_test/build.gradle | 3 ++ firestore/firestore_resources/build.gradle | 2 +- firestore/integration_test/build.gradle | 3 ++ .../integration_test_internal/build.gradle | 3 ++ .../aggregate_query_snapshot_android.cc | 12 +++++- .../cpp/AggregateQuerySnapshotHelper.java | 39 +++++++++++++++++++ functions/integration_test/build.gradle | 3 ++ gma/gma_resources/build.gradle | 4 +- messaging/messaging_java/build.gradle | 2 +- .../Android/firebase_dependencies.gradle | 4 +- release_build_files/readme.md | 10 +++-- storage/integration_test/build.gradle | 3 ++ storage/storage_resources/build.gradle | 2 +- 22 files changed, 89 insertions(+), 22 deletions(-) create mode 100644 firestore/src_java/com/google/firebase/firestore/internal/cpp/AggregateQuerySnapshotHelper.java diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index 0982e5d23b..bbee79b7b3 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -29,7 +29,7 @@ def firebaseDependenciesMap = [ 'dynamic_links' : ['com.google.firebase:firebase-dynamic-links'], 'firestore' : ['com.google.firebase:firebase-firestore'], 'functions' : ['com.google.firebase:firebase-functions'], - 'gma' : ['com.google.android.gms:play-services-ads:21.5.0'], + 'gma' : ['com.google.android.gms:play-services-ads:22.0.0'], 'installations' : ['com.google.firebase:firebase-installations'], 'invites' : ['com.google.firebase:firebase-invites'], // Messaging has an additional local dependency to include. @@ -163,7 +163,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/admob/admob_resources/build.gradle b/admob/admob_resources/build.gradle index 9aa159944b..0deedee592 100644 --- a/admob/admob_resources/build.gradle +++ b/admob/admob_resources/build.gradle @@ -45,7 +45,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-ads:19.8.0' } diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index 5b1071fd7f..26b702f856 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -50,7 +50,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 6a5e5dc2d0..159d1f1d44 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -53,7 +53,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-base:18.2.0' implementation project(':app:app_resources') diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 3e024cae24..8fbeb8dd7e 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 377c2afdb2..555f2120b9 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 9e5ceae708..64fee092bf 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/auth/integration_test/build.gradle b/auth/integration_test/build.gradle index 461ae09820..e282960d58 100644 --- a/auth/integration_test/build.gradle +++ b/auth/integration_test/build.gradle @@ -72,6 +72,9 @@ android { proguardFile file('proguard.pro') } } + packagingOptions { + pickFirst 'META-INF/**/coroutines.pro' + } } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index bcc6e88e68..bc1f1a1c0f 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -45,7 +45,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/database/integration_test/build.gradle b/database/integration_test/build.gradle index 31d51bd545..e56052a92b 100644 --- a/database/integration_test/build.gradle +++ b/database/integration_test/build.gradle @@ -72,6 +72,9 @@ android { proguardFile file('proguard.pro') } } + packagingOptions { + pickFirst 'META-INF/**/coroutines.pro' + } } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index f0890439d6..470c1ff022 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -53,7 +53,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/firestore/integration_test/build.gradle b/firestore/integration_test/build.gradle index b44d7e03f6..cd8b2e3ada 100644 --- a/firestore/integration_test/build.gradle +++ b/firestore/integration_test/build.gradle @@ -73,6 +73,9 @@ android { proguardFile file('proguard.pro') } } + packagingOptions { + pickFirst 'META-INF/**/coroutines.pro' + } } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" diff --git a/firestore/integration_test_internal/build.gradle b/firestore/integration_test_internal/build.gradle index 25113987cf..07991a65b4 100644 --- a/firestore/integration_test_internal/build.gradle +++ b/firestore/integration_test_internal/build.gradle @@ -73,6 +73,9 @@ android { proguardFile file('proguard.pro') } } + packagingOptions { + pickFirst 'META-INF/**/coroutines.pro' + } lintOptions { abortOnError false } diff --git a/firestore/src/android/aggregate_query_snapshot_android.cc b/firestore/src/android/aggregate_query_snapshot_android.cc index ddb91c80e2..6b63653449 100644 --- a/firestore/src/android/aggregate_query_snapshot_android.cc +++ b/firestore/src/android/aggregate_query_snapshot_android.cc @@ -30,26 +30,34 @@ using jni::Env; using jni::Local; using jni::Method; using jni::Object; +using jni::StaticMethod; constexpr char kClassName[] = PROGUARD_KEEP_CLASS "com/google/firebase/firestore/AggregateQuerySnapshot"; Constructor kConstructor( - "(Lcom/google/firebase/firestore/AggregateQuery;J)V"); + "(Lcom/google/firebase/firestore/AggregateQuery;Ljava/util/Map;)V"); Method kGetCount("getCount", "()J"); Method kGetQuery("getQuery", "()Lcom/google/firebase/firestore/AggregateQuery;"); Method kHashCode("hashCode", "()I"); +constexpr char kHelperClassName[] = PROGUARD_KEEP_CLASS + "com/google/firebase/firestore/internal/cpp/AggregateQuerySnapshotHelper"; +StaticMethod kCreateConstructorArg( + "createAggregateQuerySnapshotConstructorArg", "(J)Ljava/util/Map;"); + } // namespace void AggregateQuerySnapshotInternal::Initialize(jni::Loader& loader) { loader.LoadClass(kClassName, kConstructor, kGetCount, kGetQuery, kHashCode); + loader.LoadClass(kHelperClassName, kCreateConstructorArg); } AggregateQuerySnapshot AggregateQuerySnapshotInternal::Create( Env& env, AggregateQueryInternal& aggregate_query_internal, int64_t count) { + Local snapshot_data = env.Call(kCreateConstructorArg, count); Local instance = - env.New(kConstructor, aggregate_query_internal.ToJava(), count); + env.New(kConstructor, aggregate_query_internal.ToJava(), snapshot_data); return aggregate_query_internal.firestore_internal() ->NewAggregateQuerySnapshot(env, instance); } diff --git a/firestore/src_java/com/google/firebase/firestore/internal/cpp/AggregateQuerySnapshotHelper.java b/firestore/src_java/com/google/firebase/firestore/internal/cpp/AggregateQuerySnapshotHelper.java new file mode 100644 index 0000000000..3c43b0a257 --- /dev/null +++ b/firestore/src_java/com/google/firebase/firestore/internal/cpp/AggregateQuerySnapshotHelper.java @@ -0,0 +1,39 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.firebase.firestore.internal.cpp; + +import com.google.firestore.v1.Value; +import java.util.HashMap; +import java.util.Map; + +public final class AggregateQuerySnapshotHelper { + private AggregateQuerySnapshotHelper() {} + + /** + * Creates an object appropriate for specifying to the AggregateQuerySnapshot + * constructor that conveys the given "count" as the lone aggregate result. + * + * This class should be deleted and replaced with a proper mechanism once + * SUM/AVERAGE are ported to this SDK. + */ + public static Map createAggregateQuerySnapshotConstructorArg( + long count) { + HashMap map = new HashMap<>(); + map.put("count", Value.newBuilder().setIntegerValue(count).build()); + return map; + } +} diff --git a/functions/integration_test/build.gradle b/functions/integration_test/build.gradle index cd2f8be3dc..5cddcfce5a 100644 --- a/functions/integration_test/build.gradle +++ b/functions/integration_test/build.gradle @@ -72,6 +72,9 @@ android { proguardFile file('proguard.pro') } } + packagingOptions { + pickFirst 'META-INF/**/coroutines.pro' + } } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index 8262d91de8..ccb1e1e772 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -45,9 +45,9 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' - implementation 'com.google.android.gms:play-services-ads:21.5.0' + implementation 'com.google.android.gms:play-services-ads:22.0.0' } afterEvaluate { diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index 519ac85257..9b6c2ee0c2 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index 88bef01d10..407c7f675b 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -29,7 +29,7 @@ def firebaseDependenciesMap = [ 'dynamic_links' : ['com.google.firebase:firebase-dynamic-links'], 'firestore' : ['com.google.firebase:firebase-firestore'], 'functions' : ['com.google.firebase:firebase-functions'], - 'gma' : ['com.google.android.gms:play-services-ads:21.5.0'], + 'gma' : ['com.google.android.gms:play-services-ads:22.0.0'], 'installations' : ['com.google.firebase:firebase-installations'], 'invites' : ['com.google.firebase:firebase-invites'], // Messaging has an additional local dependency to include. @@ -136,7 +136,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index e5f174c448..a3372bb0d7 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -87,7 +87,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:31.3.0) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:31.5.0) | | (Android Bill of Materials) Firebase AdMob | libfirebase_admob.a | (deprecated) | libfirebase_app.a @@ -133,7 +133,7 @@ Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a | | com.google.firebase:firebase-analytics | | (Maven package) -| | com.google.android.gms:play-services-ads:21.5.0 +| | com.google.android.gms:play-services-ads:22.0.0 | | (Maven package) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a @@ -146,7 +146,7 @@ Firebase Messaging | libfirebase_messaging.a | | com.google.firebase:firebase-messaging | | (Maven package) | | libmessaging_java.jar (Android service) -| | androidx.core:core:1.9.0 (Maven package) +| | androidx.core:core:1.10.0 (Maven package) Firebase Realtime Database | libfirebase_database.a | | libfirebase_auth.a | | libfirebase_app.a @@ -643,8 +643,10 @@ code. ## Release Notes ### Upcoming Release -- 10.8.0 +- Changes - General (iOS): Update to Firebase Cocoapods version 10.8.0. + - General (Android): Update to Firebase Android BoM version 31.5.0. + - GMA (Android): Updated dependency to play-services-ads version 22.0.0. - Firestore: Added `Query::Count()`, which fetches the number of documents in the result set without actually downloading the documents ([#1207](https://github.com/firebase/firebase-cpp-sdk/pull/1207)). diff --git a/storage/integration_test/build.gradle b/storage/integration_test/build.gradle index 40690730c7..ab6a91ac9e 100644 --- a/storage/integration_test/build.gradle +++ b/storage/integration_test/build.gradle @@ -72,6 +72,9 @@ android { proguardFile file('proguard.pro') } } + packagingOptions { + pickFirst 'META-INF/**/coroutines.pro' + } } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index a399678be1..a056ba3413 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:31.3.0') + implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' }