-
Notifications
You must be signed in to change notification settings - Fork 638
firestore: fix slow queries when a collection has many NO_DOCUMENT tombstones #7301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…s many NO_DOCUMENT tombstones. This is an attempt to fix #7295
Javadoc Changes:--- /home/runner/diff/original/reports/problems/problems-report.html 2025-08-27 05:04:13.335033559 +0000
+++ /home/runner/diff/modified/reports/problems/problems-report.html 2025-08-27 05:02:04.171757706 +0000
@@ -650,7 +650,7 @@
<script type="text/javascript">
function configurationCacheProblems() { return (
// begin-report-data
-{"diagnostics":[{"locations":[{"pluginId":"firebase-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"pluginId":"firebase-java-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":37}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":30}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":36}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('ndkVersion = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('includeAndroidResources = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('compileSdk = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('sourceCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('targetCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('testBuildType = <value>') instead."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":17,"column":18,"length":10},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:17: warning: [deprecation] AsyncTask in android.os has been deprecated\nimport android.os.AsyncTask;\n ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java","line":56,"column":28,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java:56: warning: [deprecation] optional(Class<?>) in Dependency has been deprecated\n .add(Dependency.optional(FirebaseOptions.class))\n ^"}],"contextualLabel":"optional(java.lang.Class<?>) in com.google.firebase.components.Dependency has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":417,"column":21,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:417: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n && (settings.isPersistenceEnabled()\n ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":499,"column":18,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:499: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n Tasks.call(\n ^\n where TResult is a type-variable:\n TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java","line":62,"column":20,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java:62: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n return settings.isPersistenceEnabled()\n ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java","line":239,"column":14,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java:239: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n Tasks.call(\n ^\n where TResult is a type-variable:\n TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java","line":83,"column":65,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java:83: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java","line":49,"column":63,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java:49: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java","line":52,"column":15,"length":24},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java:52: warning: [deprecation] thisUsesUnstableApi() in CallCredentials has been deprecated\n public void thisUsesUnstableApi() {}\n ^"}],"contextualLabel":"thisUsesUnstableApi() in io.grpc.CallCredentials has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":16,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] NetworkInfo in android.net has been deprecated\n android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n ^"}],"contextualLabel":"android.net.NetworkInfo in android.net has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":47,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] getActiveNetworkInfo() in ConnectivityManager has been deprecated\n android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n ^"}],"contextualLabel":"getActiveNetworkInfo() in android.net.ConnectivityManager has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":210,"column":46,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:210: warning: [deprecation] isConnected() in NetworkInfo has been deprecated\n return networkInfo != null && networkInfo.isConnected();\n ^"}],"contextualLabel":"isConnected() in android.net.NetworkInfo has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":50,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] AsyncTask in android.os has been deprecated\n ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":59,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] THREAD_POOL_EXECUTOR in AsyncTask has been deprecated\n ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n ^"}],"contextualLabel":"THREAD_POOL_EXECUTOR in android.os.AsyncTask has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/BasePath.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use unchecked or unsafe operations."}],"contextualLabel":"Some input files use unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/BasePath.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]}],"problemsReport":{"totalProblemCount":33,"buildName":"com.google.firebase","requestedTasks":"kotlindoc","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"count":4}]}}
+{"diagnostics":[{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/plugins/src/main/java/com/google/firebase/gradle/plugins/ci/device/FirebaseTestServer.java"},{"taskPath":":plugins:compileJava"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/plugins/src/main/java/com/google/firebase/gradle/plugins/ci/device/FirebaseTestServer.java"},{"taskPath":":plugins:compileJava"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"pluginId":"com.android.internal.library"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getCrunchPngs' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType$AgpDecorated.isCrunchPngs' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"locations":[{"pluginId":"com.android.internal.library"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getUseProguard' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType.isUseProguard' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"locations":[{"pluginId":"firebase-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"pluginId":"firebase-java-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":37}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":30}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":36}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('ndkVersion = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('includeAndroidResources = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('compileSdk = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('sourceCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('targetCompatibility = <value>') instead."}]]},{"locations":[{"pluginId":"com.android.internal.application"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getWearAppUnbundled' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.api.variant.impl.ApplicationVariantImpl.isWearAppUnbundled' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('testBuildType = <value>') instead."}]]},{"locations":[{"pluginId":"smoke-tests"}],"problem":[{"text":"The ProjectDependency.getDependencyProject() method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The ProjectDependency.getDependencyProject() method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecate_get_dependency_project","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-projectdependency-getdependencyproject-method-has-been-deprecated","displayName":"The ProjectDependency.getDependencyProject() method has been deprecated."}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-config/src/main/java/com/google/firebase/remoteconfig/RemoteConfigComponent.java"},{"taskPath":":firebase-config:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-config/src/main/java/com/google/firebase/remoteconfig/RemoteConfigComponent.java"},{"taskPath":":firebase-config:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/FirebaseCommonRegistrar.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/FirebaseCommonRegistrar.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-database/src/main/java/com/google/firebase/database/core/utilities/Utilities.java"},{"taskPath":":firebase-database:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use unchecked or unsafe operations."}],"contextualLabel":"Some input files use unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-database/src/main/java/com/google/firebase/database/core/utilities/Utilities.java"},{"taskPath":":firebase-database:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":17,"column":18,"length":10},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:17: warning: [deprecation] AsyncTask in android.os has been deprecated\nimport android.os.AsyncTask;\n ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java","line":56,"column":28,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java:56: warning: [deprecation] optional(Class<?>) in Dependency has been deprecated\n .add(Dependency.optional(FirebaseOptions.class))\n ^"}],"contextualLabel":"optional(java.lang.Class<?>) in com.google.firebase.components.Dependency has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":417,"column":21,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:417: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n && (settings.isPersistenceEnabled()\n ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":499,"column":18,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:499: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n Tasks.call(\n ^\n where TResult is a type-variable:\n TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java","line":62,"column":20,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java:62: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n return settings.isPersistenceEnabled()\n ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java","line":239,"column":14,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java:239: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n Tasks.call(\n ^\n where TResult is a type-variable:\n TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java","line":83,"column":65,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java:83: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java","line":49,"column":63,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java:49: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java","line":52,"column":15,"length":24},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java:52: warning: [deprecation] thisUsesUnstableApi() in CallCredentials has been deprecated\n public void thisUsesUnstableApi() {}\n ^"}],"contextualLabel":"thisUsesUnstableApi() in io.grpc.CallCredentials has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":16,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] NetworkInfo in android.net has been deprecated\n android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n ^"}],"contextualLabel":"android.net.NetworkInfo in android.net has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":47,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] getActiveNetworkInfo() in ConnectivityManager has been deprecated\n android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n ^"}],"contextualLabel":"getActiveNetworkInfo() in android.net.ConnectivityManager has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":210,"column":46,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:210: warning: [deprecation] isConnected() in NetworkInfo has been deprecated\n return networkInfo != null && networkInfo.isConnected();\n ^"}],"contextualLabel":"isConnected() in android.net.NetworkInfo has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":50,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] AsyncTask in android.os has been deprecated\n ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":59,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] THREAD_POOL_EXECUTOR in AsyncTask has been deprecated\n ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n ^"}],"contextualLabel":"THREAD_POOL_EXECUTOR in android.os.AsyncTask has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/BasePath.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use unchecked or unsafe operations."}],"contextualLabel":"Some input files use unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/BasePath.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/model/CrashlyticsReport.java","line":246,"column":30,"length":14},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/model/CrashlyticsReport.java:246: warning: [AutoValueMutable] An @AutoValue property that is a primitive array returns the original array, which can therefore be modified by the caller. If this is OK, you can suppress this warning with @SuppressWarnings(\"mutable\"). Otherwise, you should replace the property with an immutable type, perhaps a simple wrapper around the original array.\n public abstract byte[] getContents();\n ^"}],"contextualLabel":"[AutoValueMutable] An @AutoValue property that is a primitive array returns the original array, which can therefore be modified by the caller. If this is OK, you can suppress this warning with @SuppressWarnings(\"mutable\"). Otherwise, you should replace the property with an immutable type, perhaps a simple wrapper around the original array.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CommonUtils.java"},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CommonUtils.java"},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallationsException.java"},{"taskPath":":firebase-installations:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallationsException.java"},{"taskPath":":firebase-installations:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/ForegroundNotifier.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/ForegroundNotifier.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/internal/CustomModelDownloadService.java"},{"taskPath":":firebase-ml-modeldownloader:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/internal/CustomModelDownloadService.java"},{"taskPath":":firebase-ml-modeldownloader:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"taskPath":":encoders:protoc-gen-firebase-encoders:shadowJar"}],"problem":[{"text":"The FileTreeElement.getMode() method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The FileTreeElement.getMode() method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#unix_file_permissions_deprecated","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-filetreeelement-getmode-method-has-been-deprecated","displayName":"The FileTreeElement.getMode() method has been deprecated."}],"solutions":[[{"text":"Please use the getPermissions() method instead."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-messaging/src/main/java/com/google/firebase/messaging/TopicsSyncTask.java"},{"taskPath":":firebase-messaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-messaging/src/main/java/com/google/firebase/messaging/TopicsSyncTask.java"},{"taskPath":":firebase-messaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/internal/bindingwrappers/CardBindingWrapper.java"},{"taskPath":":firebase-inappmessaging-display:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/internal/bindingwrappers/CardBindingWrapper.java"},{"taskPath":":firebase-inappmessaging-display:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java"},{"taskPath":":firebase-perf:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java"},{"taskPath":":firebase-perf:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-debug:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-debug:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-playintegrity:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-playintegrity:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java"},{"taskPath":":appcheck:firebase-appcheck-debug-testing:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java"},{"taskPath":":appcheck:firebase-appcheck-debug-testing:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-recaptchaenterprise:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-recaptchaenterprise:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]}],"problemsReport":{"totalProblemCount":77,"buildName":"com.google.firebase","requestedTasks":"kotlindoc","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"count":4}]}}
// end-report-data
);}
</script> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @dconeybe, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request significantly improves the performance of Firestore queries, particularly when a collection contains a large number of NO_DOCUMENT tombstones. By introducing a new document_type column in the remote_documents SQLite table and filtering on this column during queries, the system avoids loading and processing irrelevant tombstone entries, leading to substantial speedups for affected queries.
Highlights
- Database Schema Update: A new document_type column has been added to the remote_documents table in the SQLite cache to store the type of each document (e.g., NO_DOCUMENT, FOUND_DOCUMENT).
- Document Type Persistence: The add method in SQLiteRemoteDocumentCache now persists the DocumentType (e.g., NO_DOCUMENT, FOUND_DOCUMENT) of a MutableDocument into the remote_documents table.
- Optimized Query Filtering: The getAll method in SQLiteRemoteDocumentCache has been enhanced to allow filtering documents by their document_type directly at the database level, reducing the amount of data retrieved.
- Targeted Query Performance: The getDocumentsMatchingQuery method now explicitly filters for FOUND_DOCUMENT types, preventing the retrieval and in-memory processing of NO_DOCUMENT tombstones that previously caused performance bottlenecks.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a performance optimization for queries on collections with many NO_DOCUMENT
tombstones by adding a document_type
column to the local cache. My review has identified two key issues. First, a critical issue in the database schema migration where existing documents are not backfilled with the new document_type
, which could lead to queries failing to return cached data. Second, a high-severity issue with how bind variables are allocated for SQL queries, which could lead to a crash under certain conditions. Both issues include suggestions for fixes.
firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteSchema.java
Show resolved
Hide resolved
...e-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteRemoteDocumentCache.java
Outdated
Show resolved
Hide resolved
Coverage Report 1Affected Products
Test Logs |
Size Report 1Affected Products
Test Logs |
Startup Time Report 1Note: Layout is sometimes suboptimal due to limited formatting support on GitHub. Please check this report on GCS. Notes
Startup Times
|
… the length of the given collections is greater than zero.
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR optimizes Firestore query performance by reducing the overhead of processing NO_DOCUMENT
tombstones in collections with many deleted documents. The fix adds a document_type
column to the SQLite remote_documents
table to enable database-level filtering of irrelevant tombstone entries.
- Adds
document_type
column toremote_documents
table with database schema migration - Updates document persistence to store document type (NO_DOCUMENT, FOUND_DOCUMENT, etc.)
- Modifies query logic to filter for FOUND_DOCUMENT types at the database level, avoiding in-memory processing of tombstones
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
SQLiteSchema.java | Adds schema migration (v18) to introduce document_type column |
SQLiteRemoteDocumentCache.java | Implements DocumentType enum, updates persistence and query methods to use document type filtering |
SQLiteSchemaTest.java | Adds test to verify document retrieval after schema migration |
CHANGELOG.md | Documents the performance improvement for queries with deleted documents |
Comments suppressed due to low confidence (1)
firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteRemoteDocumentCache.java:1
- The BINDS_PER_STATEMENT constant is now incorrect. With the addition of the optional document_type parameter, statements can have 11 bind variables instead of 10. This should be updated to reflect the maximum number of bind variables per statement, or the logic should be refactored to calculate the actual number dynamically.
// Copyright 2018 Google LLC
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
...e-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteRemoteDocumentCache.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a significant performance improvement for queries on collections with many deleted documents by adding a document_type
column to the local cache. This allows filtering out tombstones at the database level. The implementation is solid, with appropriate schema migration and tests. I've found one potential issue in the generic query method getAll()
where the backward-compatibility logic for document_type
could lead to incorrect results if used with filter types other than FOUND_DOCUMENT
. I've provided a suggestion to make this logic more robust.
…hat the filtering is a "best effort" and not guaranteed.
This PR improves the performance of Firestore queries when many documents have been deleted from a collection. Each deletion leaves behind a
NO_DOCUMENT
"tombstone" that must be processed just like an existing document when running a query against the local cache, making queries on such collections take longer than necssary. This PR introduces a newdocument_type
column in theremote_documents
SQLite table and filters on this column during queries, avoiding loading and processing irrelevant tombstone entries, leading to substantial speedups for affected queries.In my performance test, querying an empty collection with zero NO_DOCUMENT tombstones took 2 milliseconds. A collection with 10,000 NO_DOCUMENT tombstones took 67 milliseconds (32 times longer), despite the snapshot size being 0. With the fix in this PR, the same query of a collection with 10,000 NO_DOCUMENT tombstones took 6 milliseconds, only slightly slower than the 2 milliseconds the query takes with a fully empty collection.
Highlights
Fixes #7295