Skip to content

Fix FIS ID duplication issue from backup data #7096

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

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

VinayGuthal
Copy link
Contributor

@VinayGuthal VinayGuthal commented Jul 2, 2025

Currently, FIS apps are writing their data into the backup directory. This causes an issue when a new installation retrieves data from the backup, as it also picks up the previous FIS ID. This results in the FCM server throwing an error, indicating that the FIS ID is already associated with another instance. This PR fixes the issue for new apps using FIS.

@VinayGuthal VinayGuthal requested a review from rlazo July 2, 2025 18:58
Copy link
Contributor

github-actions bot commented Jul 2, 2025

Javadoc Changes:
--- /home/runner/diff/original/reports/problems/problems-report.html	2025-07-03 15:13:05.650415678 +0000
+++ /home/runner/diff/modified/reports/problems/problems-report.html	2025-07-03 15:10:55.261360549 +0000
@@ -650,7 +650,7 @@
 <script type="text/javascript">
 function configurationCacheProblems() { return (
 // begin-report-data
-{"diagnostics":[{"locations":[{"pluginId":"org.jetbrains.kotlin.jvm"}],"problem":[{"text":"The org.gradle.api.plugins.Convention type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The org.gradle.api.plugins.Convention type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecated_access_to_conventions","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-org-gradle-api-plugins-convention-type-has-been-deprecated","displayName":"The org.gradle.api.plugins.Convention type has been deprecated."}]},{"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":32}],"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":35}],"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":"kotlin-android"}],"problem":[{"text":"The org.gradle.api.plugins.Convention type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The org.gradle.api.plugins.Convention type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecated_access_to_conventions","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-org-gradle-api-plugins-convention-type-has-been-deprecated","displayName":"The org.gradle.api.plugins.Convention type has been deprecated."}]},{"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."}]]},{"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."}]]},{"locations":[{"pluginId":"org.jetbrains.kotlin.android"}],"problem":[{"text":"The org.gradle.api.plugins.Convention type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The org.gradle.api.plugins.Convention type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecated_access_to_conventions","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-org-gradle-api-plugins-convention-type-has-been-deprecated","displayName":"The org.gradle.api.plugins.Convention type has been deprecated."}]},{"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."}]]},{"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 ('signingConfig = <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 ('minSdk = <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 ('targetSdk = <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 ('buildConfig = <value>') instead."}]]},{"locations":[{"pluginId":"org.jetbrains.kotlin.jvm"}],"problem":[{"text":"The Configuration.fileCollection(Spec) method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Configuration.fileCollection(Spec) method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecate_filtered_configuration_file_and_filecollection_methods","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-configuration-filecollection-spec-method-has-been-deprecated","displayName":"The Configuration.fileCollection(Spec) method has been deprecated."}],"solutions":[[{"text":"Use Configuration.getIncoming().artifactView(Action) with a componentFilter instead."}]]},{"locations":[{"pluginId":"kotlin-android"}],"problem":[{"text":"The Configuration.fileCollection(Spec) method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Configuration.fileCollection(Spec) method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecate_filtered_configuration_file_and_filecollection_methods","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-configuration-filecollection-spec-method-has-been-deprecated","displayName":"The Configuration.fileCollection(Spec) method has been deprecated."}],"solutions":[[{"text":"Use Configuration.getIncoming().artifactView(Action) with a componentFilter instead."}]]},{"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"}]}],"problemsReport":{"totalProblemCount":24,"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":2}]}}
+{"diagnostics":[{"locations":[{"pluginId":"org.jetbrains.kotlin.jvm"}],"problem":[{"text":"The org.gradle.api.plugins.Convention type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The org.gradle.api.plugins.Convention type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecated_access_to_conventions","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-org-gradle-api-plugins-convention-type-has-been-deprecated","displayName":"The org.gradle.api.plugins.Convention type has been deprecated."}]},{"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":32}],"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":35}],"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":"kotlin-android"}],"problem":[{"text":"The org.gradle.api.plugins.Convention type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The org.gradle.api.plugins.Convention type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecated_access_to_conventions","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-org-gradle-api-plugins-convention-type-has-been-deprecated","displayName":"The org.gradle.api.plugins.Convention type has been deprecated."}]},{"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."}]]},{"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."}]]},{"locations":[{"pluginId":"org.jetbrains.kotlin.android"}],"problem":[{"text":"The org.gradle.api.plugins.Convention type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The org.gradle.api.plugins.Convention type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecated_access_to_conventions","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-org-gradle-api-plugins-convention-type-has-been-deprecated","displayName":"The org.gradle.api.plugins.Convention type has been deprecated."}]},{"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."}]]},{"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 ('signingConfig = <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 ('minSdk = <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 ('targetSdk = <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 ('buildConfig = <value>') instead."}]]},{"locations":[{"pluginId":"org.jetbrains.kotlin.jvm"}],"problem":[{"text":"The Configuration.fileCollection(Spec) method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Configuration.fileCollection(Spec) method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecate_filtered_configuration_file_and_filecollection_methods","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-configuration-filecollection-spec-method-has-been-deprecated","displayName":"The Configuration.fileCollection(Spec) method has been deprecated."}],"solutions":[[{"text":"Use Configuration.getIncoming().artifactView(Action) with a componentFilter instead."}]]},{"locations":[{"pluginId":"kotlin-android"}],"problem":[{"text":"The Configuration.fileCollection(Spec) method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Configuration.fileCollection(Spec) method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#deprecate_filtered_configuration_file_and_filecollection_methods","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-configuration-filecollection-spec-method-has-been-deprecated","displayName":"The Configuration.fileCollection(Spec) method has been deprecated."}],"solutions":[[{"text":"Use Configuration.getIncoming().artifactView(Action) with a componentFilter instead."}]]},{"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/heartbeatinfo/DefaultHeartBeatController.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/heartbeatinfo/DefaultHeartBeatController.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/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/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/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/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/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/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/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/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-inappmessaging/src/main/java/com/google/firebase/inappmessaging/model/ProtoMarshallerClient.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/model/ProtoMarshallerClient.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-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-display/src/main/java/com/google/firebase/inappmessaging/display/internal/FiamWindowManager.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/FiamWindowManager.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-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-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/firebase-messaging/src/main/java/com/google/firebase/messaging/SyncTask.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/SyncTask.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/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-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-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"}]}],"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":2}]}}
 // end-report-data
 );}
 </script>

Copy link
Contributor

github-actions bot commented Jul 2, 2025

Firebase AI Mock Responses Check ⚠️

A newer major version of the mock responses for Firebase AI unit tests is available. update_responses.sh should be updated to clone the latest version of the responses: v14.2

Copy link

@gemini-code-assist gemini-code-assist bot left a 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 @VinayGuthal, 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 resolves a critical issue where Firebase Installation IDs (FIS IDs) were being duplicated when an application was restored from backup, leading to errors with the FCM server. The solution involves ensuring that the persistent storage for FIS data is moved to a directory that is explicitly excluded from Android's automatic backup mechanism, thereby preventing the ID from being restored to a new instance and maintaining data integrity across app installations and restorations.

Highlights

  • Preventing FIS ID Duplication: This pull request directly addresses an issue where Firebase Installation IDs (FIS IDs) were being duplicated when an application was restored from backup. This duplication previously led to errors from the FCM server, indicating that the FIS ID was already associated with another instance.
  • Data Migration to Non-Backup Storage: The core change involves migrating the PersistedInstallation data file from the standard application files directory (Context.getFilesDir()), which is typically included in automatic backups, to Context.getNoBackupFilesDir(). This ensures that sensitive and device-specific FIS data is explicitly excluded from Android's backup mechanism.
  • Backward Compatibility and Migration Logic: The implementation includes robust logic to handle existing installations. Upon first access after the update, if an old data file is found in the backup-enabled directory, it attempts to move this file to the new non-backup location, ensuring a seamless transition for users without losing their existing FIS data.
  • Improved Logging for File Operations: Logging capabilities have been added to assist with debugging and monitoring the file migration process, specifically to report any issues encountered when attempting to move the installation data file.
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 is currently in preview and 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 to provide feedback.

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

  1. 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.

@VinayGuthal VinayGuthal requested review from samedson and removed request for samedson July 2, 2025 18:58
Copy link

@gemini-code-assist gemini-code-assist bot left a 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 addresses a Firebase Installation ID (FIS ID) duplication issue by moving the data file to a no-backup directory. However, the migration logic for existing users is unreachable, potentially causing a loss of FIS ID. The review includes a critical comment on this issue and suggestions to improve logging.

@rlazo rlazo requested a review from sam-gc July 2, 2025 19:03
@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 2, 2025

Coverage Report 1

Affected Products

  • firebase-installations

    Overall coverage changed from ? (3d29714) to 58.15% (2f50e27) by ?.

    23 individual files with coverage change

    FilenameBase (3d29714)Merge (2f50e27)Diff
    AutoValue_InstallationResponse.java?58.93%?
    AutoValue_PersistedInstallationEntry.java?56.98%?
    AutoValue_TokenResult.java?42.22%?
    AwaitListener.java?0.00%?
    Clock.java?0.00%?
    CrossProcessLock.java?51.85%?
    FirebaseInstallations.java?96.62%?
    FirebaseInstallationServiceClient.java?4.80%?
    FirebaseInstallationsException.java?78.57%?
    FirebaseInstallationsRegistrar.java?100.00%?
    GetAuthTokenListener.java?100.00%?
    GetIdListener.java?70.00%?
    IidStore.java?22.39%?
    InstallationResponse.java?100.00%?
    Installations.kt?40.00%?
    PersistedInstallation.java?92.11%?
    PersistedInstallationEntry.java?100.00%?
    RandomFidGenerator.java?20.00%?
    RequestLimiter.java?100.00%?
    StateListener.java?0.00%?
    SystemClock.java?100.00%?
    TokenResult.java?100.00%?
    Utils.java?95.00%?

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/IgUcqGsDJ7.html

Copy link
Contributor

github-actions bot commented Jul 2, 2025

Test Results

 20 files   - 30   20 suites   - 30   55s ⏱️ -14s
 49 tests  - 27   48 ✅  - 28  1 💤 +1  0 ❌ ±0 
104 runs   - 64  102 ✅  - 66  2 💤 +2  0 ❌ ±0 

Results for commit 2ca1c0d. ± Comparison against base commit 2bfc0a5.

This pull request removes 76 and adds 49 tests. Note that renamed tests count towards both.
com.google.firebase.CoroutinesPlayServicesTests ‑ Task#await() resolves to the same result as Task#getResult()
com.google.firebase.CoroutinesPlayServicesTests ‑ Task#await() throws an Exception for failing Tasks
com.google.firebase.DataCollectionPostNDefaultEnabledTest ‑ isDataCollectionDefaultEnabled_shouldDefaultToTrue
com.google.firebase.DataCollectionPostNDefaultEnabledTest ‑ isDataCollectionDefaultEnabled_whenPrefsFalse_shouldReturnFalse
com.google.firebase.DataCollectionPostNDefaultEnabledTest ‑ isDataCollectionDefaultEnabled_whenPrefsTrue_shouldReturnTrue
com.google.firebase.DataCollectionPostNDefaultEnabledTest ‑ setDataCollectionDefaultEnabledFalse_shouldUpdateSharedPrefs
com.google.firebase.DataCollectionPostNDefaultEnabledTest ‑ setDataCollectionDefaultEnabled_shouldNotAffectOtherFirebaseAppInstances
com.google.firebase.DataCollectionPreNDefaultEnabledTest ‑ isDataCollectionDefaultEnabled_shouldDefaultToTrue
com.google.firebase.DataCollectionPreNDefaultEnabledTest ‑ isDataCollectionDefaultEnabled_whenPrefsFalse_shouldReturnFalse
com.google.firebase.DataCollectionPreNDefaultEnabledTest ‑ isDataCollectionDefaultEnabled_whenPrefsTrue_shouldReturnTrue
…
com.google.firebase.installations.FirebaseInstallationsRegistrarTest ‑ getFirebaseInstallationsInstance
com.google.firebase.installations.FirebaseInstallationsTest ‑ testApiKeyCheck
com.google.firebase.installations.FirebaseInstallationsTest ‑ testAppIdCheck
com.google.firebase.installations.FirebaseInstallationsTest ‑ testDelete_emptyPersistedFidEntry_successful
com.google.firebase.installations.FirebaseInstallationsTest ‑ testDelete_networkError
com.google.firebase.installations.FirebaseInstallationsTest ‑ testDelete_registeredFID_successful
com.google.firebase.installations.FirebaseInstallationsTest ‑ testDelete_serverError_badConfig
com.google.firebase.installations.FirebaseInstallationsTest ‑ testDelete_unregisteredFID_successful
com.google.firebase.installations.FirebaseInstallationsTest ‑ testFidListener_fidChanged_successful
com.google.firebase.installations.FirebaseInstallationsTest ‑ testGetAuthToken_authError_persistedInstallationCleared
…

♻️ This comment has been updated with latest results.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 2, 2025

Size Report 1

Affected Products

  • base

    TypeBase (3d29714)Merge (2f50e27)Diff
    apk (aggressive)?8.80 kB? (?)
    apk (release)?9.77 kB? (?)
  • firebase-installations

    TypeBase (3d29714)Merge (2f50e27)Diff
    aar?57.8 kB? (?)
    apk (aggressive)?148 kB? (?)
    apk (release)?4.46 MB? (?)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/psqt72Nk54.html

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 2, 2025

Startup Time Report 1

Note: Layout is sometimes suboptimal due to limited formatting support on GitHub. Please check this report on GCS.

Startup time comparison between the CI merge commit (2f50e27) and the base commit (3d29714) are not available.

No macrobenchmark data found for the base commit (3d29714). Analysis for the CI merge commit (2f50e27) can be found at:

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/Bzhk53e3Y9/index.html

if (dataFile == null) {
synchronized (this) {
if (dataFile == null) {
// Different FirebaseApp in the same Android application should have the same application
// context and same dir path
dataFile =
new File(
firebaseApp.getApplicationContext().getNoBackupFilesDir(),
SETTINGS_FILE_NAME_PREFIX + "." + firebaseApp.getPersistenceKey() + ".json");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extract this part to reduce duplicatoin

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do you mean by this? this initialization is different from the one below

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants