From 755c473cff9765c090d00bab8b459cdb9a74ca84 Mon Sep 17 00:00:00 2001 From: rlazo <368578+rlazo@users.noreply.github.com> Date: Fri, 10 Oct 2025 14:16:35 +0000 Subject: [PATCH 1/3] Post release cleanup for m171 --- firebase-ai/CHANGELOG.md | 81 ++-- firebase-ai/gradle.properties | 4 +- firebase-crashlytics-ndk/CHANGELOG.md | 208 +++----- firebase-crashlytics-ndk/gradle.properties | 4 +- firebase-crashlytics/CHANGELOG.md | 343 ++++++-------- firebase-crashlytics/gradle.properties | 4 +- firebase-dataconnect/CHANGELOG.md | 74 ++- firebase-dataconnect/gradle.properties | 4 +- firebase-firestore/CHANGELOG.md | 525 +++++++++------------ firebase-firestore/gradle.properties | 4 +- firebase-sessions/CHANGELOG.md | 67 ++- firebase-sessions/gradle.properties | 4 +- 12 files changed, 548 insertions(+), 774 deletions(-) diff --git a/firebase-ai/CHANGELOG.md b/firebase-ai/CHANGELOG.md index a2b6c34dd75..0dd442b4339 100644 --- a/firebase-ai/CHANGELOG.md +++ b/firebase-ai/CHANGELOG.md @@ -1,88 +1,83 @@ # Unreleased -- [changed] **Breaking Change**: Removed the `candidateCount` option from `LiveGenerationConfig` -- [changed] Added support for user interrupts for the `startAudioConversation` method in the + +# 17.4.0 +* [changed] **Breaking Change**: Removed the `candidateCount` option from `LiveGenerationConfig` +* [changed] Added support for user interrupts for the `startAudioConversation` method in the `LiveSession` class. (#7413) -- [changed] Added support for the URL context tool, which allows the model to access content from +* [changed] Added support for the URL context tool, which allows the model to access content from provided public web URLs to inform and enhance its responses. (#7382) -- [changed] Added better error messages to `ServiceConnectionHandshakeFailedException` (#7412) -- [changed] Marked the public constructor for `UsageMetadata` as deprecated (#7420) -- [changed] Using Firebase AI Logic with the Gemini Developer API is now Generally Available (GA). -- [changed] Using Firebase AI Logic with the Imagen generation APIs is now Generally Available (GA). +* [changed] Added better error messages to `ServiceConnectionHandshakeFailedException` (#7412) +* [changed] Marked the public constructor for `UsageMetadata` as deprecated (#7420) +* [changed] Using Firebase AI Logic with the Gemini Developer API is now Generally Available (GA). +* [changed] Using Firebase AI Logic with the Imagen generation APIs is now Generally Available (GA). # 17.3.0 - -- [changed] Bumped internal dependencies. -- [feature] Added support for code execution. -- [changed] Marked the public constructors for `ExecutableCodePart` and `CodeExecutionResultPart` as +* [changed] Bumped internal dependencies. +* [feature] Added support for code execution. +* [changed] Marked the public constructors for `ExecutableCodePart` and `CodeExecutionResultPart` as deprecated. -- [feature] Introduced `MissingPermissionsException`, which is thrown when the necessary permissions +* [feature] Introduced `MissingPermissionsException`, which is thrown when the necessary permissions have not been granted by the user. -- [feature] Added helper functions to `LiveSession` to allow developers to track the status of the +* [feature] Added helper functions to `LiveSession` to allow developers to track the status of the audio session and the underlying websocket connection. -- [changed] Added new values to `HarmCategory` (#7324) -- [fixed] Fixed an issue that caused unknown or empty `Part`s to throw an exception. Instead, we now +* [changed] Added new values to `HarmCategory` (#7324) +* [fixed] Fixed an issue that caused unknown or empty `Part`s to throw an exception. Instead, we now log them and filter them from the response (#7333) # 17.2.0 - -- [feature] Added support for returning thought summaries, which are synthesized versions of a +* [feature] Added support for returning thought summaries, which are synthesized versions of a model's internal reasoning process. -- [fixed] Fixed an issue causing the accessor methods in `GenerateContentResponse` to throw an +* [fixed] Fixed an issue causing the accessor methods in `GenerateContentResponse` to throw an exception when the response contained no candidates. -- [changed] Added better description for requests which fail due to the Gemini API not being +* [changed] Added better description for requests which fail due to the Gemini API not being configured. -- [changed] Added a `dilation` parameter to `ImagenMaskReference.generateMaskAndPadForOutpainting` +* [changed] Added a `dilation` parameter to `ImagenMaskReference.generateMaskAndPadForOutpainting` (#7260) -- [feature] Added support for limited-use tokens with Firebase App Check. These limited-use tokens +* [feature] Added support for limited-use tokens with Firebase App Check. These limited-use tokens are required for an upcoming optional feature called _replay protection_. We recommend [enabling the usage of limited-use tokens](https://firebase.google.com/docs/ai-logic/app-check) now so that when replay protection becomes available, you can enable it sooner because more of your users will be on versions of your app that send limited-use tokens. (#7285) # 17.1.0 - ======= -- [feature] added support for Imagen Editing, including inpainting, outpainting, control, style +* [feature] added support for Imagen Editing, including inpainting, outpainting, control, style transfer, and subject references (#7075) -- [feature] **Preview:** Added support for bidirectional streaming in Gemini Developer Api +* [feature] **Preview:** Added support for bidirectional streaming in Gemini Developer Api # 17.0.0 - -- [feature] Added support for configuring the "thinking" budget when using Gemini 2.5 series models. +* [feature] Added support for configuring the "thinking" budget when using Gemini 2.5 series models. (#6990) -- [feature] **Breaking Change**: Add support for grounding with Google Search (#7042). +* [feature] **Breaking Change**: Add support for grounding with Google Search (#7042). - **Action Required:** Update all references of `groundingAttributions`, `webSearchQueries`, `retrievalQueries` in `GroundingMetadata` to be non-optional. -- [changed] require at least one argument for `generateContent()`, `generateContentStream()` and +* [changed] require at least one argument for `generateContent()`, `generateContentStream()` and `countTokens()`. -- [feature] Added new overloads for `generateContent()`, `generateContentStream()` and +* [feature] Added new overloads for `generateContent()`, `generateContentStream()` and `countTokens()` that take a `List` parameter. -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. # 16.2.0 - -- [changed] Deprecate the `totalBillableCharacters` field (only usable with pre-2.0 models). (#7042) -- [feature] Added support for extra schema properties like `title`, `minItems`, `maxItems`, +* [changed] Deprecate the `totalBillableCharacters` field (only usable with pre-2.0 models). (#7042) +* [feature] Added support for extra schema properties like `title`, `minItems`, `maxItems`, `minimum` and `maximum`. As well as support for the `anyOf` schema. (#7013) # 16.1.0 - -- [fixed] Fixed `FirebaseAI.getInstance` StackOverflowException (#6971) -- [fixed] Fixed an issue that was causing the SDK to send empty `FunctionDeclaration` descriptions +* [fixed] Fixed `FirebaseAI.getInstance` StackOverflowException (#6971) +* [fixed] Fixed an issue that was causing the SDK to send empty `FunctionDeclaration` descriptions to the API. -- [changed] Introduced the `Voice` class, which accepts a voice name, and deprecated the `Voices` +* [changed] Introduced the `Voice` class, which accepts a voice name, and deprecated the `Voices` class. -- [changed] **Breaking Change**: Updated `SpeechConfig` to take in `Voice` class instead of `Voices` +* [changed] **Breaking Change**: Updated `SpeechConfig` to take in `Voice` class instead of `Voices` class. - **Action Required:** Update all references of `SpeechConfig` initialization to use `Voice` class. -- [fixed] Fix incorrect model name in count token requests to the developer API backend +* [fixed] Fix incorrect model name in count token requests to the developer API backend # 16.0.0 - -- [feature] Initial release of the Firebase AI SDK (`firebase-ai`). This SDK _replaces_ the previous +* [feature] Initial release of the Firebase AI SDK (`firebase-ai`). This SDK _replaces_ the previous Vertex AI in Firebase SDK (`firebase-vertexai`) to accommodate the evolving set of supported features and services. - The new Firebase AI SDK provides **Preview** support for the Gemini Developer API, including its @@ -92,10 +87,10 @@ If you're using the old `firebase-vertexai`, we recommend [migrating to `firebase-ai`](/docs/ai-logic/migrate-to-latest-sdk) because all new development and features will be in this new SDK. - -- [feature] **Preview:** Added support for specifying response modalities in `GenerationConfig` +* [feature] **Preview:** Added support for specifying response modalities in `GenerationConfig` (only available in the new `firebase-ai` package). This includes support for image generation using [specific Gemini models](/docs/vertex-ai/models). Note: This feature is in Public Preview, which means that it is not subject to any SLA or deprecation policy and could change in backwards-incompatible ways. + diff --git a/firebase-ai/gradle.properties b/firebase-ai/gradle.properties index a61baee5a19..c1ee825b2cb 100644 --- a/firebase-ai/gradle.properties +++ b/firebase-ai/gradle.properties @@ -12,5 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -version=17.4.0 -latestReleasedVersion=17.3.0 +version=17.4.1 +latestReleasedVersion=17.4.0 diff --git a/firebase-crashlytics-ndk/CHANGELOG.md b/firebase-crashlytics-ndk/CHANGELOG.md index 18e26fc8b19..c1eb95f19df 100644 --- a/firebase-crashlytics-ndk/CHANGELOG.md +++ b/firebase-crashlytics-ndk/CHANGELOG.md @@ -1,111 +1,87 @@ # Unreleased -- [changed] Bumped internal dependencies. -# 20.0.2 +# 20.0.3 +* [changed] Bumped internal dependencies. -- [changed] Bumped internal dependencies. +# 20.0.2 +* [changed] Bumped internal dependencies. # 20.0.1 - -- [changed] Updated `firebase-crashlytics` dependency to 20.0.1 +* [changed] Updated `firebase-crashlytics` dependency to 20.0.1 # 20.0.0 - -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. # 19.4.4 - -- [changed] Updated `firebase-crashlytics` dependency to v19.4.4 +* [changed] Updated `firebase-crashlytics` dependency to v19.4.4 # 19.4.3 - -- [changed] Updated internal Crashpad version to commit `21a20e`. +* [changed] Updated internal Crashpad version to commit `21a20e`. # 19.4.2 - -- [changed] Updated `firebase-crashlytics` dependency to v19.4.2 +* [changed] Updated `firebase-crashlytics` dependency to v19.4.2 # 19.4.1 - -- [changed] Updated `firebase-crashlytics` dependency to v19.4.1 +* [changed] Updated `firebase-crashlytics` dependency to v19.4.1 # 19.3.0 - -- [changed] Updated `firebase-crashlytics` dependency to v19.3.0 +* [changed] Updated `firebase-crashlytics` dependency to v19.3.0 # 19.2.1 - -- [changed] Updated `firebase-crashlytics` dependency to v19.2.1 +* [changed] Updated `firebase-crashlytics` dependency to v19.2.1 # 19.2.0 - -- [changed] Updated `firebase-crashlytics` dependency to v19.2.0 +* [changed] Updated `firebase-crashlytics` dependency to v19.2.0 # 19.1.0 - -- [changed] Updated `firebase-crashlytics` dependency to v19.1.0 +* [changed] Updated `firebase-crashlytics` dependency to v19.1.0 # 19.0.3 - -- [changed] Updated `firebase-crashlytics` dependency to v19.0.3 +* [changed] Updated `firebase-crashlytics` dependency to v19.0.3 # 19.0.2 - -- [changed] Update libcrashlytics to support 16 kb page sizes. +* [changed] Update libcrashlytics to support 16 kb page sizes. # 19.0.1 - -- [changed] Updated `firebase-crashlytics` dependency to v19.0.1 +* [changed] Updated `firebase-crashlytics` dependency to v19.0.1 # 19.0.0 - -- [changed] Bump internal dependencies +* [changed] Bump internal dependencies # 18.6.3 - -- [changed] Updated `firebase-crashlytics` dependency to v18.6.3 +* [changed] Updated `firebase-crashlytics` dependency to v18.6.3 # 18.6.0 - -- [changed] Updated `firebase-crashlytics` dependency to v18.6.0 +* [changed] Updated `firebase-crashlytics` dependency to v18.6.0 # 18.5.0 - -- [changed] Updated `firebase-crashlytics` dependency to v18.5.0 +* [changed] Updated `firebase-crashlytics` dependency to v18.5.0 # 18.4.3 - -- [changed] Updated `firebase-crashlytics` dependency to v18.4.3 +* [changed] Updated `firebase-crashlytics` dependency to v18.4.3 # 18.4.2 - -- [changed] Updated `firebase-crashlytics` dependency to v18.4.2 +* [changed] Updated `firebase-crashlytics` dependency to v18.4.2 # 18.4.1 - -- [changed] Updated `firebase-crashlytics` dependency to v18.4.1 +* [changed] Updated `firebase-crashlytics` dependency to v18.4.1 # 18.4.0 - -- [changed] Updated `firebase-crashlytics` dependency to v18.4.0 +* [changed] Updated `firebase-crashlytics` dependency to v18.4.0 # 18.3.7 - -- [changed] Updated `firebase-crashlytics` dependency to v18.3.7 +* [changed] Updated `firebase-crashlytics` dependency to v18.3.7 # 18.3.6 - -- [changed] Updated `firebase-crashlytics` dependency to v18.3.6. +* [changed] Updated `firebase-crashlytics` dependency to v18.3.6. # 18.3.5 - -- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing +* [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing a nondeterministic crash on startup. -- [changed] Updated `firebase-crashlytics` dependency to v18.3.5. +* [changed] Updated `firebase-crashlytics` dependency to v18.3.5. # 18.3.4 - -- [changed] [crashlytics] NDK crash reporting will now start automatically when the [crashlytics] +* [changed] [crashlytics] NDK crash reporting will now start automatically when the [crashlytics] NDK dependency is included in your app. -- [changed] The [crashlytics] Gradle plugin has new tasks to support uploading symbol files to +* [changed] The [crashlytics] Gradle plugin has new tasks to support uploading symbol files to [crashlytics] servers. See the [[crashlytics] Gradle plugin documentation](/docs/crashlytics/ndk-reports-new-sdk) for more information. + diff --git a/firebase-crashlytics-ndk/gradle.properties b/firebase-crashlytics-ndk/gradle.properties index 1f1b6b0c4a8..71e47fd3594 100644 --- a/firebase-crashlytics-ndk/gradle.properties +++ b/firebase-crashlytics-ndk/gradle.properties @@ -1,2 +1,2 @@ -version=20.0.3 -latestReleasedVersion=20.0.2 +version=20.0.4 +latestReleasedVersion=20.0.3 diff --git a/firebase-crashlytics/CHANGELOG.md b/firebase-crashlytics/CHANGELOG.md index c545530b38e..b08f5655d40 100644 --- a/firebase-crashlytics/CHANGELOG.md +++ b/firebase-crashlytics/CHANGELOG.md @@ -1,287 +1,259 @@ # Unreleased -- [fixed] Made creating DataStore files more resilient [#7440] -# 20.0.2 +# 20.0.3 +* [fixed] Made creating DataStore files more resilient [#7440] -- [changed] Bumped internal dependencies. +# 20.0.2 +* [changed] Bumped internal dependencies. # 20.0.1 - -- [changed] Updated `firebase-sessions` dependency to v3.0.1 +* [changed] Updated `firebase-sessions` dependency to v3.0.1 # 20.0.0 - -- [changed] **Breaking Change**: Removed deprecated public constructor +* [changed] **Breaking Change**: Removed deprecated public constructor `KeyValueBuilder(crashlytics: FirebaseCrashlytics)` -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and +* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +* [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 19.4.4 +* [fixed] Fixed more strict mode violations -- [fixed] Fixed more strict mode violations ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.3 +* [fixed] Fixed UnbufferedIoViolation strict mode violation [#6822] -- [fixed] Fixed UnbufferedIoViolation strict mode violation [#6822] ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.2 - -- [changed] Internal changes to read version control info more efficiently [#6754] -- [fixed] Fixed NoSuchMethodError when getting process info on Android 13 on some devices [#6720] -- [changed] Updated `firebase-sessions` dependency to v2.1.0 +* [changed] Internal changes to read version control info more efficiently [#6754] +* [fixed] Fixed NoSuchMethodError when getting process info on Android 13 on some devices [#6720] +* [changed] Updated `firebase-sessions` dependency to v2.1.0 - [changed] Add warning for known issue [b/328687152](https://issuetracker.google.com/328687152) [#6755] - [changed] Updated datastore dependency to v1.1.3 to fix [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8) [#6688] -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.1 +* [changed] Updated `firebase-sessions` dependency to v2.0.9 -- [changed] Updated `firebase-sessions` dependency to v2.0.9 ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.0 - -- [feature] Added an overload for `recordException` that allows logging additional custom keys to +* [feature] Added an overload for `recordException` that allows logging additional custom keys to the non fatal event [#3551] -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.3.0 +* [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` extension. +* [fixed] Execute failure listener outside the main thread [#6535] -- [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` extension. -- [fixed] Execute failure listener outside the main thread [#6535] ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.2.1 - -- [changed] Updated protobuf dependency to `3.25.5` to fix +* [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.2.0 - -- [fixed] Improved data consistency for rapid user actions. -- [fixed] Fixed exception propagation in the case of no default uncaught exception handler. -- [changed] Internal changes to improve startup time. -- [changed] Internal changes to the way background tasks are scheduled. -- [changed] Migrated SDK to use standard Firebase executors. +* [fixed] Improved data consistency for rapid user actions. +* [fixed] Fixed exception propagation in the case of no default uncaught exception handler. +* [changed] Internal changes to improve startup time. +* [changed] Internal changes to the way background tasks are scheduled. +* [changed] Migrated SDK to use standard Firebase executors. # 19.1.0 - -- [feature] Added the `isCrashlyticsCollectionEnabled` API to check if Crashlytics collection is +* [feature] Added the `isCrashlyticsCollectionEnabled` API to check if Crashlytics collection is enabled. (GitHub [#5919](https://github.com/firebase/firebase-android-sdk/issues/5919){: .external}) -- [fixed] Ensure that on-demand fatal events are never processed on the main thread. (GitHub +* [fixed] Ensure that on-demand fatal events are never processed on the main thread. (GitHub [#4345](https://github.com/firebase/firebase-android-sdk/issues/4345){: .external}) -- [changed] Internal changes to the way session IDs are generated. +* [changed] Internal changes to the way session IDs are generated. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.3 +* [changed] Update the internal file system to handle long file names. -- [changed] Update the internal file system to handle long file names. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.2 +* [changed] Changing caught exception type to fail safely on any exception type. -- [changed] Changing caught exception type to fail safely on any exception type. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.1 +* [changed] Improve cold initialization time. +* [fixed] Fixed version compatibility issues with other Firebase libraries. -- [changed] Improve cold initialization time. -- [fixed] Fixed version compatibility issues with other Firebase libraries. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.0 +* [fixed] Force validation or rotation of FIDs. +* [fixed] Added keep rule for shrinkage of Crashlytics build resources in strict mode. -- [fixed] Force validation or rotation of FIDs. -- [fixed] Added keep rule for shrinkage of Crashlytics build resources in strict mode. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.3 +* [feature] Updated `firebase-sessions` dependency. -- [feature] Updated `firebase-sessions` dependency. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.2 +* [changed] Bump internal dependencies. -- [changed] Bump internal dependencies. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.1 +* [feature] Updated `firebase-sessions` dependency for internal improvements -- [feature] Updated `firebase-sessions` dependency for internal improvements ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.0 - -- [changed] Include more details about app processes in reports. -- [feature] Updated `firebase-sessions` dependency for more accurate sessions on multi-process apps. -- [changed] Added support for [crashlytics] to report information from [remote_config]. +* [changed] Include more details about app processes in reports. +* [feature] Updated `firebase-sessions` dependency for more accurate sessions on multi-process apps. +* [changed] Added support for [crashlytics] to report information from [remote_config]. # 18.5.1 - -- [fixed] Internal improvement to fix compatibility with Flutter and Unity SDKs. Github +* [fixed] Internal improvement to fix compatibility with Flutter and Unity SDKs. Github [#10759](https://github.com/firebase/flutterfire/issues/10759) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.5.0 - -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-crashlytics-ktx` +* [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-crashlytics-ktx` to `com.google.firebase:firebase-crashlytics` under the `com.google.firebase.crashlytics` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-crashlytics-ktx` have been added to +* [deprecated] All the APIs from `com.google.firebase:firebase-crashlytics-ktx` have been added to `com.google.firebase:firebase-crashlytics` under the `com.google.firebase.crashlytics` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-crashlytics-ktx` are now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.4.3 - -- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. +* [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. [#5337] -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.4.2 +* [feature] Expanded `firebase-sessions` library integration to work with NDK crashes and ANRs. +* [changed] Improved reliability when reporting memory usage. -- [feature] Expanded `firebase-sessions` library integration to work with NDK crashes and ANRs. -- [changed] Improved reliability when reporting memory usage. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.4.1 - -- [changed] Updated `firebase-sessions` dependency to v1.0.2 +* [changed] Updated `firebase-sessions` dependency to v1.0.2 # 18.4.0 - -- [feature] Integrated with Firebase sessions library to enable upcoming features related to +* [feature] Integrated with Firebase sessions library to enable upcoming features related to session-based crash metrics. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.7 - -- [feature] Added collection of version control information generated by the Android Gradle plugin +* [feature] Added collection of version control information generated by the Android Gradle plugin (AGP). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.6 - -- [feature] Added support for upcoming [crashlytics] features to report GWP-ASan crashes on +* [feature] Added support for upcoming [crashlytics] features to report GWP-ASan crashes on supported API levels. (GitHub [#4721](https://github.com/firebase/firebase-android-sdk/pull/4721){: .external}) -- [changed] Improved crash reporting reliability for crashes that occur early in the app's +* [changed] Improved crash reporting reliability for crashes that occur early in the app's lifecycle. (GitHub [#4608](https://github.com/firebase/firebase-android-sdk/pull/4608){: .external}, [#4786](https://github.com/firebase/firebase-android-sdk/pull/4786){: .external}) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.5 - -- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing +* [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing a nondeterministic crash on startup. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.4 - -- [changed] Improved crash reporting reliability for crashes that occur early in the app's +* [changed] Improved crash reporting reliability for crashes that occur early in the app's lifecycle. -- [changed] Added improved support for capturing `BuildId`s for native ANRs on older Android +* [changed] Added improved support for capturing `BuildId`s for native ANRs on older Android versions. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.3 +* [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.3. -- [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.3. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.2 +* [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.2. -- [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.2. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.1 - -- [fixed] Fixed an [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: +* [fixed] Fixed an [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: .external} in v18.3.0 that caused a `NoClassDefFoundError` in specific cases. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.0 - Warning: We're aware of an [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: .external} in this version of the [crashlytics] Android SDK.
**We strongly recommend using the latest version of the SDK (v18.3.1+ or [bom] v31.0.1+).** -- [changed] Improved reporting for crashes that occur early in the app's lifecycle. After updating +* [changed] Improved reporting for crashes that occur early in the app's lifecycle. After updating to this version, you might notice a sudden _increase_ in the number of crashes that are reported for your app. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has the following additional updates: -- [feature] Firebase now supports Kotlin coroutines. With this release, we added +* [feature] Firebase now supports Kotlin coroutines. With this release, we added [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} to `firebase-crashlytics-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. # 18.2.13 +* [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.12 +* [changed] Internal changes to avoid accessing device-specific information. -- [changed] Internal changes to avoid accessing device-specific information. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.11 +* [changed] Improved crash reporting reliability for multi-process apps on Android 28 and above. -- [changed] Improved crash reporting reliability for multi-process apps on Android 28 and above. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.10 - -- [fixed] Fixed a bug that could prevent unhandled exceptions from being propagated to the default +* [fixed] Fixed a bug that could prevent unhandled exceptions from being propagated to the default handler when the network is unavailable. -- [changed] Internal changes to support on-demand fatal crash reporting for Flutter apps. -- [fixed] Fixed a bug that prevented [crashlytics] from initializing on some devices in some cases. +* [changed] Internal changes to support on-demand fatal crash reporting for Flutter apps. +* [fixed] Fixed a bug that prevented [crashlytics] from initializing on some devices in some cases. (#3269) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.9 - -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and +* [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release entry. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.8 +* [changed] Updated to the latest version of the `firebase-datatransport` library. -- [changed] Updated to the latest version of the `firebase-datatransport` library. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.7 - -- [changed] Improved runtime efficiency of the +* [changed] Improved runtime efficiency of the [`setCustomKey` functions](/docs/crashlytics/customize-crash-reports?platform=android#add-keys), significantly reducing the number of `Task` objects and disk writes when keys are updated frequently. (#3254) -- [fixed] Fixed a StrictMode `DiskReadViolation`. (#3265) +* [fixed] Fixed a StrictMode `DiskReadViolation`. (#3265) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.6 +* [changed] Internal changes to support future improvements to Flutter crash reporting. -- [changed] Internal changes to support future improvements to Flutter crash reporting. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.5 - -- [fixed] Fixed a bug that prevented some [crashlytics] session files from being removed after the +* [fixed] Fixed a bug that prevented some [crashlytics] session files from being removed after the session ended. All session-specific files are now properly cleaned up. -- [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation +* [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation and removal of intermediate [crashlytics] files. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.4 +* [changed] Internal changes to support ANR collection and their upcoming display in the console. -- [changed] Internal changes to support ANR collection and their upcoming display in the console. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.3 - -- [fixed] Fixed a race condition that prevented some launch-time crashes from being reported to +* [fixed] Fixed a race condition that prevented some launch-time crashes from being reported to Crashlytics. -- [changed] Internal changes to support upcoming Unity crash reporting improvements. +* [changed] Internal changes to support upcoming Unity crash reporting improvements. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.1 - -- [fixed] Fixed a `ConcurrentModificationException` that could be logged to logcat when setting +* [fixed] Fixed a `ConcurrentModificationException` that could be logged to logcat when setting multiple custom key/values in rapid succession. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.0 +* [changed] Internal changes. -- [changed] Internal changes. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.1.0 +* [changed] Internal changes to support upcoming Unity features. -- [changed] Internal changes to support upcoming Unity features. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.0.1 - -- [fixed] Fixed a bug that could prevent proper removal of [crashlytics] NDK crash report files when +* [fixed] Fixed a bug that could prevent proper removal of [crashlytics] NDK crash report files when crash reporting is disabled, resulting in excessive disk use. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.0.0 - -- [changed] Removed call to +* [changed] Removed call to [`FirebaseInstallations#getId()`]() when [automatic data collection](/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting) is disabled for [crashlytics]. [crashlytics] no longer makes any network calls when reporting is disabled. -- [changed] Internal changes to support dynamic feature modules. +* [changed] Internal changes to support dynamic feature modules. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.4.1 - -- [changed] Improved rooted device detection. (#2515) -- [fixed] Fix an uncaught IllegalStateExeception that could be thrown if [crashlytics] is unable to +* [changed] Improved rooted device detection. (#2515) +* [fixed] Fix an uncaught IllegalStateExeception that could be thrown if [crashlytics] is unable to register a receiver that collects battery state information. If registration fails due to the app already having registered too many receivers, [crashlytics] will report default values for the battery state rather than crashing. (#2504) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.4.0 - -- [feature] Added the +* [feature] Added the [`setCustomKeys`](/docs/reference/android/com/google/firebase/crashlytics/CustomKeysAndValues) API to allow bulk logging of custom keys and values. ([Github PR #2443](//github.com/firebase/firebase-android-sdk/pull/2443){: .external}) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.3.1 - -- [changed] Removed OkHttp dependency to eliminate conflicts with apps and SDKs using incompatible +* [changed] Removed OkHttp dependency to eliminate conflicts with apps and SDKs using incompatible versions. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.3.0 - -- [changed] Clarified debug logs for crash reports enqueued to be sent via the +* [changed] Clarified debug logs for crash reports enqueued to be sent via the `firebase-datatransport` library. -- [fixed] Addressed an issue which could cause a `RejectedExecutionException` in rare cases. +* [fixed] Addressed an issue which could cause a `RejectedExecutionException` in rare cases. ([Github Issue #2013](//github.com/firebase/firebase-android-sdk/issues/2013){: .external}) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.2.2 - -- [fixed] Fixed crash that can occur when using a built-in resource as the app launcher icon. +* [fixed] Fixed crash that can occur when using a built-in resource as the app launcher icon. ([Github Issue #1935](//github.com/firebase/firebase-android-sdk/issues/1935){: .external}) -- [fixed] Fixed a bug preventing crash reports from being sent in some cases when an app is using +* [fixed] Fixed a bug preventing crash reports from being sent in some cases when an app is using [crashlytics] on multiple processes. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.2.1 - -- [fixed] Improved handling of asynchronous tasks that need to wait for completion on the main +* [fixed] Improved handling of asynchronous tasks that need to wait for completion on the main thread. ([Github PR #1739](//github.com/firebase/firebase-android-sdk/pull/1739){: .external}) -- [changed] Added an overload to the `setCrashlyticsCollectionEnabled` API to allow for passing +* [changed] Added an overload to the `setCrashlyticsCollectionEnabled` API to allow for passing `null` to clear any previously set value. ([Github PR #1434](//github.com/firebase/firebase-android-sdk/pull/1434){: .external}) -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an +* [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an indirect dependency via the Firebase Instance ID SDK. ([Github PR #1760](//github.com/firebase/firebase-android-sdk/pull/1760){: .external}) {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.1.1 - -- [changed] To improve the reliability of submitting crash uploads on poor networks, changed the +* [changed] To improve the reliability of submitting crash uploads on poor networks, changed the Transport SDK to retry connection errors ([Github Issue #1705](//github.com/firebase/firebase-android-sdk/issues/1705){: .external}) and increased the number of retries before deleting events ([Github Issue #1708](//github.com/firebase/firebase-android-sdk/issues/1708){: .external}). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.1.0 - -- [fixed] Updated [crashlytics] integration with [firebase_analytics] to include native crashes in +* [fixed] Updated [crashlytics] integration with [firebase_analytics] to include native crashes in crash-free users counts. -- [fixed] Removed a harmless, yet unexpected `FileNotFoundException` log output that printed when an +* [fixed] Removed a harmless, yet unexpected `FileNotFoundException` log output that printed when an optional file is unavailable. ([Github Issue #1559](//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614){: .external}) -## Kotlin -- [feature] The [firebase_crashlytics] Android library with Kotlin extensions is now available. The +## Kotlin +* [feature] The [firebase_crashlytics] Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base `firebase-crashlytics` library. To learn more, visit the [[crashlytics] KTX documentation](/docs/reference/kotlin/com/google/firebase/crashlytics/ktx/package-summary). # 17.0.1 - -- [fixed] Fixed an issue causing a `SQLiteException` when changing versions of [crashlytics]. +* [fixed] Fixed an issue causing a `SQLiteException` when changing versions of [crashlytics]. ([Github Issue #1531](https://github.com/firebase/firebase-android-sdk/issues/1531){: .external}) -- [fixed] Improved reliability of sending reports at crash time on Android API level 28+. +* [fixed] Improved reliability of sending reports at crash time on Android API level 28+. # 17.0.0 - -- [changed] The [firebase_crashlytics] SDK is now generally available. -- [fixed] Fixed an issue that could cause apps to crash if a crash report payload is too large +* [changed] The [firebase_crashlytics] SDK is now generally available. +* [fixed] Fixed an issue that could cause apps to crash if a crash report payload is too large (rare). -- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step +* [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the [firebase_installations] service in a future release. # 17.0.0-beta04 - -- [changed] Imposed a limit on the maximum crash report payload size. -- [fixed] Reduced crash report payload size. +* [changed] Imposed a limit on the maximum crash report payload size. +* [fixed] Reduced crash report payload size. # 17.0.0-beta03 - -- [fixed] Fixed internal bugs to improve crash analysis and grouping. -- [changed] Improved compatibility with Google Analytics. For best performance, make sure you're +* [fixed] Fixed internal bugs to improve crash analysis and grouping. +* [changed] Improved compatibility with Google Analytics. For best performance, make sure you're using the latest versions of the [firebase_crashlytics] SDK and the Firebase SDK for Google Analytics. -- [changed] Updated remaining [crashlytics] backend API calls to prepare for Fabric sunset. +* [changed] Updated remaining [crashlytics] backend API calls to prepare for Fabric sunset. # 17.0.0-beta02 - -- [changed] Removed superfluous `D/FirebaseCrashlytics` prefix from logs. +* [changed] Removed superfluous `D/FirebaseCrashlytics` prefix from logs. ([#1202](https://github.com/firebase/firebase-android-sdk/issues/1202)) -- [changed] Updated [crashlytics] backend API calls in preparation for Fabric sunset. -- [changed] Upgraded [firebase_analytics] integration to improve crash-free users accuracy. For +* [changed] Updated [crashlytics] backend API calls in preparation for Fabric sunset. +* [changed] Upgraded [firebase_analytics] integration to improve crash-free users accuracy. For improved performance, we recommend that you upgrade to the latest version of the Firebase SDK for [firebase_analytics] with this version of [firebase_crashlytics]. # 17.0.0-beta01 - This release for [firebase_crashlytics] includes the initial beta release of the [firebase_crashlytics] SDK. @@ -684,11 +622,12 @@ name change. The following release notes describe changes in the new SDK. -- [changed] Replaced static methods with new instance methods that are more consistent with other +* [changed] Replaced static methods with new instance methods that are more consistent with other Firebase SDKs and more intuitive to use. The new APIs give your users more control over how you collect their data. -- [removed] Removed the Fabric [crashlytics] API key. Now, [crashlytics] will always use the +* [removed] Removed the Fabric [crashlytics] API key. Now, [crashlytics] will always use the `google-services.json` file to associate your app with your Firebase project. If you linked your app from Fabric, remove the Fabric API key from your `AndroidManifest.xml` file. -- [removed] The `fabric.properties` and `crashlytics.properties` files are no longer supported. +* [removed] The `fabric.properties` and `crashlytics.properties` files are no longer supported. Remove them from your app. + diff --git a/firebase-crashlytics/gradle.properties b/firebase-crashlytics/gradle.properties index 1f1b6b0c4a8..71e47fd3594 100644 --- a/firebase-crashlytics/gradle.properties +++ b/firebase-crashlytics/gradle.properties @@ -1,2 +1,2 @@ -version=20.0.3 -latestReleasedVersion=20.0.2 +version=20.0.4 +latestReleasedVersion=20.0.3 diff --git a/firebase-dataconnect/CHANGELOG.md b/firebase-dataconnect/CHANGELOG.md index 05a00870315..3df8718de0e 100644 --- a/firebase-dataconnect/CHANGELOG.md +++ b/firebase-dataconnect/CHANGELOG.md @@ -1,107 +1,99 @@ # Unreleased -- [fixed] Addressed minor reference documentation issues (#7399) -- [changed] Added classes `EnumValue` and `EnumValueSerializer`. These classes are identical to + +# 17.1.0 +* [fixed] Addressed minor reference documentation issues (#7399) +* [changed] Added classes `EnumValue` and `EnumValueSerializer`. These classes are identical to those produced by the Data Connect code generator; however, a future version of the code generator will start using these classes from the SDK rather than generating them. ([#7153](https://github.com/firebase/firebase-android-sdk/pull/7153)) # 17.0.1 - -- [changed] Bumped internal dependencies. -- [changed] Ignore unknown fields in response data instead of throwing a +* [changed] Bumped internal dependencies. +* [changed] Ignore unknown fields in response data instead of throwing a `DataConnectOperationException` with message "decoding data from the server's response failed: An unknown field for index -3" ([#7314](https://github.com/firebase/firebase-android-sdk/pull/7314)) # 17.0.0 - -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [changed] Removed superfluous and noisy debug logging of operation variables. +* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +* [changed] Removed superfluous and noisy debug logging of operation variables. # 16.0.3 - -- [fixed] Fixed occasional `NullPointerException` when registering with FirebaseAuth, leading to +* [fixed] Fixed occasional `NullPointerException` when registering with FirebaseAuth, leading to erroneous UNAUTHENTICATED exceptions. ([#7001](https://github.com/firebase/firebase-android-sdk/pull/7001)) # 16.0.2 - -- [changed] Improved code robustness related to state management in `FirebaseDataConnect` objects. +* [changed] Improved code robustness related to state management in `FirebaseDataConnect` objects. ([#6861](https://github.com/firebase/firebase-android-sdk/pull/6861)) # 16.0.1 - -- [changed] Internal improvements. +* [changed] Internal improvements. # 16.0.0 - -- [changed] DataConnectOperationException added, enabling support for partial errors; that is, any +* [changed] DataConnectOperationException added, enabling support for partial errors; that is, any data that was received and/or was able to be decoded is now available via the "response" property of the exception thrown when a query or mutation is executed. ([#6794](https://github.com/firebase/firebase-android-sdk/pull/6794)) # 16.0.0-beta05 - -- [changed] Changed gRPC proto package to v1 (was v1beta). +* [changed] Changed gRPC proto package to v1 (was v1beta). ([#6729](https://github.com/firebase/firebase-android-sdk/pull/6729)) # 16.0.0-beta04 - -- [changed] `FirebaseDataConnect.logLevel` type changed from `LogLevel` to +* [changed] `FirebaseDataConnect.logLevel` type changed from `LogLevel` to `MutableStateFlow`. This enables apps to "collect" the flow to, for example, update a UI component when the log level changes. ([#6586](https://github.com/firebase/firebase-android-sdk/pull/6586)) # 16.0.0-beta03 - -- [changed] Requires Data Connect emulator version 1.6.1 or later for code generation. -- [feature] QueryRef and MutationRef gain methods copy(), withDataDeserializer(), and +* [changed] Requires Data Connect emulator version 1.6.1 or later for code generation. +* [feature] QueryRef and MutationRef gain methods copy(), withDataDeserializer(), and withVariablesSerializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] GeneratedConnector gains methods copy(), operations(), queries(), and mutations(). +* [feature] GeneratedConnector gains methods copy(), operations(), queries(), and mutations(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] GeneratedQuery and GeneratedMutation gain methods copy(), withVariablesSerializer(), and +* [feature] GeneratedQuery and GeneratedMutation gain methods copy(), withVariablesSerializer(), and withDataDeserializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] GeneratedConnector, GeneratedQuery, and GeneratedMutation now must implement equals() to +* [feature] GeneratedConnector, GeneratedQuery, and GeneratedMutation now must implement equals() to be a _logical_ comparsion, rather than just checking for _referencial_ equality using the `===` operator. ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] ExperimentalFirebaseDataConnect annotation added, and some APIs have been annotated with +* [feature] ExperimentalFirebaseDataConnect annotation added, and some APIs have been annotated with it, requiring applications that make use of these experimental APIs to opt-in using `@OptIn(ExperimentalFirebaseDataConnect::class)` to suppress warnings or errors related to using these experimental APIs. ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) and ([#6433](https://github.com/firebase/firebase-android-sdk/pull/6433)) -- [changed] Replaced java.util.Date with com.google.firebase.dataconnect.LocalDate. +* [changed] Replaced java.util.Date with com.google.firebase.dataconnect.LocalDate. ([#6434](https://github.com/firebase/firebase-android-sdk/pull/6434)) -- [changed] `DateSerializer` removed, as it is superceded by `LocalDateSerializer`. As of Data +* [changed] `DateSerializer` removed, as it is superceded by `LocalDateSerializer`. As of Data Connect emulator version 1.7.0, the generated Kotlin code uses `com.google.firebase.dataconnect.LocalDate` instead of `java.util.Date`. Therefore, this version of the SDK must be paired with code generated by version 1.7.0 (or later) of the Data Connect emulator. ([#6513](https://github.com/firebase/firebase-android-sdk/pull/6513)) -- [feature] JavaTimeLocalDateSerializer and KotlinxDatetimeLocalDateSerializer added, to enable +* [feature] JavaTimeLocalDateSerializer and KotlinxDatetimeLocalDateSerializer added, to enable using the standard "local date" classes `java.time.LocalDate` and/or `kotlinx.datetime.LocalDate` instead of the bespoke `com.google.firebase.dataconnect.LocalDate` class for `Date` GraphQL fields and variables. ([#6519](https://github.com/firebase/firebase-android-sdk/pull/6519)) # 16.0.0-beta02 - -- [changed] Updated protobuf dependency to `3.25.5` to fix +* [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). # 16.0.0-beta01 - -- [feature] Initial release of the Data Connect SDK (public preview). Learn how to +* [feature] Initial release of the Data Connect SDK (public preview). Learn how to [get started](https://firebase.google.com/docs/data-connect/android-sdk) with the SDK in your app. -- [feature] Added App Check support. +* [feature] Added App Check support. ([#6176](https://github.com/firebase/firebase-android-sdk/pull/6176)) -- [feature] Added `AnyValue` to support the `Any` custom GraphQL scalar type. +* [feature] Added `AnyValue` to support the `Any` custom GraphQL scalar type. ([#6285](https://github.com/firebase/firebase-android-sdk/pull/6285)) -- [feature] Added `OrderDirection` enum support. +* [feature] Added `OrderDirection` enum support. ([#6307](https://github.com/firebase/firebase-android-sdk/pull/6307)) -- [feature] Added ability to specify `SerializersModule` when serializing. +* [feature] Added ability to specify `SerializersModule` when serializing. ([#6297](https://github.com/firebase/firebase-android-sdk/pull/6297)) -- [feature] Added `CallerSdkType`, which enables tracking of the generated SDK usage. +* [feature] Added `CallerSdkType`, which enables tracking of the generated SDK usage. ([#6298](https://github.com/firebase/firebase-android-sdk/pull/6298) and [#6179](https://github.com/firebase/firebase-android-sdk/pull/6179)) -- [changed] Changed gRPC proto package to v1beta (was v1alpha). +* [changed] Changed gRPC proto package to v1beta (was v1alpha). ([#6299](https://github.com/firebase/firebase-android-sdk/pull/6299)) -- [changed] Added `equals` and `hashCode` methods to `GeneratedConnector`. +* [changed] Added `equals` and `hashCode` methods to `GeneratedConnector`. ([#6177](https://github.com/firebase/firebase-android-sdk/pull/6177)) + diff --git a/firebase-dataconnect/gradle.properties b/firebase-dataconnect/gradle.properties index 3cc599b9342..5328ce212de 100644 --- a/firebase-dataconnect/gradle.properties +++ b/firebase-dataconnect/gradle.properties @@ -1,2 +1,2 @@ -version=17.1.0 -latestReleasedVersion=17.0.1 +version=17.1.1 +latestReleasedVersion=17.1.0 diff --git a/firebase-firestore/CHANGELOG.md b/firebase-firestore/CHANGELOG.md index 8844874adf8..9e32bc7b61b 100644 --- a/firebase-firestore/CHANGELOG.md +++ b/firebase-firestore/CHANGELOG.md @@ -1,598 +1,548 @@ # Unreleased -- [changed] Improve query performance in large result sets by replacing the deprecated AsyncTask + +# 26.0.2 +* [changed] Improve query performance in large result sets by replacing the deprecated AsyncTask thread pool with a self-managed thread pool. [#7376](//github.com/firebase/firebase-android-sdk/issues/7376) -- [changed] Improve query performance via internal memoization of calculated document data. +* [changed] Improve query performance via internal memoization of calculated document data. [#7370](//github.com/firebase/firebase-android-sdk/issues/7370) -- [changed] Improve query performance by avoiding excessive Comparator instance creation. +* [changed] Improve query performance by avoiding excessive Comparator instance creation. [#7388](//github.com/firebase/firebase-android-sdk/pull/7388) -- [changed] Improve query performance by using an unsorted HashMap instead of a sorted TreeMap. +* [changed] Improve query performance by using an unsorted HashMap instead of a sorted TreeMap. [#7389](//github.com/firebase/firebase-android-sdk/pull/7389) - [changed] Add `java.time.Instant` support to `DocumentSnapshot.toObject()`, `DocumentReference.set()`, `DocumentReference.update()`, and similar. [#6235](//github.com/firebase/firebase-android-sdk/pull/6235) # 26.0.1 - -- [changed] Bumped internal dependencies. -- [changed] Improve the performance of queries in collections that contain many deleted documents. +* [changed] Bumped internal dependencies. +* [changed] Improve the performance of queries in collections that contain many deleted documents. [#7295](//github.com/firebase/firebase-android-sdk/issues/7295) # 26.0.0 - -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and +* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +* [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). -- [fixed] Further improved performance of UTF-8 string ordering logic, which had degraded in v25.1.2 +* [fixed] Further improved performance of UTF-8 string ordering logic, which had degraded in v25.1.2 and received some improvements in v25.1.3. [#7053](//github.com/firebase/firebase-android-sdk/issues/7053) -- [changed] Use the `compare()` methods defined in standard `Integer`, `Long`, and `Character` +* [changed] Use the `compare()` methods defined in standard `Integer`, `Long`, and `Character` classes instead of Firestore's bespoke implementations. [#7109](//github.com/firebase/firebase-android-sdk/pull/7109) # 25.1.4 - -- [fixed] Fixed the `null` value handling in `whereNotEqualTo` and `whereNotIn` filters. -- [fixed] Catch exception when stream is already cancelled during close. +* [fixed] Fixed the `null` value handling in `whereNotEqualTo` and `whereNotIn` filters. +* [fixed] Catch exception when stream is already cancelled during close. [#6894](//github.com/firebase/firebase-android-sdk/pull/6894) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.3 - -- [fixed] Use lazy encoding in UTF-8 encoded byte comparison for strings to solve performance +* [fixed] Use lazy encoding in UTF-8 encoded byte comparison for strings to solve performance issues. [#6706](//github.com/firebase/firebase-android-sdk/pull/6706) -- [changed] Updated `protolite-well-known-types` dependency to `18.0.1`. [#6716] +* [changed] Updated `protolite-well-known-types` dependency to `18.0.1`. [#6716] -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.2 - -- [fixed] Fixed a server and sdk mismatch in unicode string sorting. +* [fixed] Fixed a server and sdk mismatch in unicode string sorting. [#6615](//github.com/firebase/firebase-android-sdk/pull/6615) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.1 - -- [changed] Update Firestore proto definitions. +* [changed] Update Firestore proto definitions. [#6369](//github.com/firebase/firebase-android-sdk/pull/6369) -- [changed] Updated protobuf dependency to `3.25.5` to fix +* [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.0 - -- [feature] Add support for the VectorValue type. +* [feature] Add support for the VectorValue type. [#6154](//github.com/firebase/firebase-android-sdk/pull/6154) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.0.0 - -- [feature] Enable queries with range & inequality filters on multiple fields. +* [feature] Enable queries with range & inequality filters on multiple fields. [#5729](//github.com/firebase/firebase-android-sdk/pull/5729) -- [changed] Internal improvements. -- [feature] Support conversion between `java.time.Instant` and `Timestamp` +* [changed] Internal improvements. +* [feature] Support conversion between `java.time.Instant` and `Timestamp` [#5853](//github.com/firebase/firebase-android-sdk/pull/5853) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.11.0 - -- [feature] Enable snapshot listener option to retrieve data from local cache only. +* [feature] Enable snapshot listener option to retrieve data from local cache only. [#5690](//github.com/firebase/firebase-android-sdk/pull/5690) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.3 - -- [fixed] Fixed the missing handling setter annotations bug introduced by +* [fixed] Fixed the missing handling setter annotations bug introduced by [#5626](//github.com/firebase/firebase-android-sdk/pull/5626). [#5706](//github.com/firebase/firebase-android-sdk/pull/5706) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.2 - -- [changed] Internal test improvements. -- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's corresponding bridge +* [changed] Internal test improvements. +* [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's corresponding bridge methods. [#5626](//github.com/firebase/firebase-android-sdk/pull/5626) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.1 - -- [fixed] Fixed an issue caused by calling mutation on immutable map object. +* [fixed] Fixed an issue caused by calling mutation on immutable map object. [#5573](//github.com/firebase/firebase-android-sdk/pull/5573) -- [fixed] Fixed an issue in the local cache synchronization logic where all locally-cached documents +* [fixed] Fixed an issue in the local cache synchronization logic where all locally-cached documents that matched a resumed query would be unnecessarily re-downloaded; with the fix it now only downloads the documents that are known to be out-of-sync. [#5506](//github.com/firebase/firebase-android-sdk/pull/5506) -- [fixed] Fixed an issue where GC runs into a infinite loop in a certain case. +* [fixed] Fixed an issue where GC runs into a infinite loop in a certain case. [#5417](https://github.com/firebase/firebase-android-sdk/issues/5417) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.0 - -- [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal state when comparing +* [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal state when comparing snapshots. # 24.9.1 - -- [feature] Expose Sum/Average aggregate query support in API. +* [feature] Expose Sum/Average aggregate query support in API. [#5217](//github.com/firebase/firebase-android-sdk/pull/5217) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.9.0 - -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-firestore-ktx` to +* [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-firestore-ktx` to `com.google.firebase:firebase-firestore` under the `com.google.firebase.firestore` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -- [deprecated] All the APIs from `com.google.firebase:firebase-firestore-ktx` have been added to +* [deprecated] All the APIs from `com.google.firebase:firebase-firestore-ktx` have been added to `com.google.firebase:firebase-firestore` under the `com.google.firebase.firestore` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-firestore-ktx` are now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.8.1 - -- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. +* [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. [#5337] -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.8.0 - -- [feature] Added the option to allow the SDK to create cache indexes automatically to improve query +* [feature] Added the option to allow the SDK to create cache indexes automatically to improve query execution locally. See [`db.getPersistentCacheIndexManager().enableIndexAutoCreation()`]() ([GitHub [#4987](//github.com/firebase/firebase-android-sdk/pull/4987){: .external}). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.7.1 - -- [fixed] Implement equals method on Filter class. +* [fixed] Implement equals method on Filter class. [#5210](//github.com/firebase/firebase-android-sdk/issues/5210) # 24.7.0 - -- [feature] Expose MultiDb support in API. +* [feature] Expose MultiDb support in API. [#4015](//github.com/firebase/firebase-android-sdk/issues/4015) -- [fixed] Fixed a thread interference issue that may lead to a ConcurrentModificationException. +* [fixed] Fixed a thread interference issue that may lead to a ConcurrentModificationException. (GitHub [#5091](//github.com/firebase/firebase-android-sdk/issues/5091){: .external}) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.6.1 - -- [feature] Implemented an optimization in the local cache synchronization logic that reduces the +* [feature] Implemented an optimization in the local cache synchronization logic that reduces the number of billed document reads when documents were deleted on the server while the client was not actively listening to the query (e.g. while the client was offline). (GitHub [#4982](//github.com/firebase/firebase-android-sdk/pull/4982){: .external}) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.6.0 - -- [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub +* [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) -- [feature] Added new +* [feature] Added new [cache config APIs]() to customize the SDK's cache setup. -- [feature] Added +* [feature] Added [LRU garbage collector](/docs/reference/android/com/google/firebase/firestore/MemoryLruGcSettings) to the SDK's memory cache. -- [deprecated] Deprecated the following APIs from +* [deprecated] Deprecated the following APIs from [`FirebaseFirestoreSettings`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings):
`isPersistenceEnabled` and `getCacheSizeBytes`. -- [deprecated] Deprecated the following APIs from +* [deprecated] Deprecated the following APIs from [`FirebaseFirestoreSettings.Builder`]():
`isPersistenceEnabled`, `getCacheSizeBytes`, `setPersistenceEnabled`, and `setCacheSizeBytes`. -- [changed] Internal changes to ensure alignment with other SDK releases. +* [changed] Internal changes to ensure alignment with other SDK releases. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.5.0 - -- [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub +* [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) -## Kotlin -- [feature] Added +## Kotlin +* [feature] Added [`Query.dataObjects()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects) and [`DocumentReference.dataObjects()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects_1) Kotlin Flows to listen for realtime updates and convert its values to a specific type. # 24.4.5 +* [feature] Added support for disjunctions in queries (`OR` queries). -- [feature] Added support for disjunctions in queries (`OR` queries). ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.4 - -- [changed] Relaxed certain query validations performed by the SDK +* [changed] Relaxed certain query validations performed by the SDK ([GitHub Issue #4231](//github.com/firebase/firebase-android-sdk/issues/4231)). -- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, and protobuf-java-util to 3.21.11. +* [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, and protobuf-java-util to 3.21.11. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.3 +* [fixed] Fixed a potential high-memory usage issue. +* [fixed] Fixed an issue that stopped some performance optimization from being applied. -- [fixed] Fixed a potential high-memory usage issue. -- [fixed] Fixed an issue that stopped some performance optimization from being applied. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.2 +* [fixed] Fixed an issue that stopped some performance optimization from being applied. -- [fixed] Fixed an issue that stopped some performance optimization from being applied. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.1 - -- [fixed] Fix `FAILED_PRECONDITION` when writing to a deleted document in a transaction. (#5871) -- [fixed] Fixed [firestore] failing to raise initial snapshot from an empty local cache result. +* [fixed] Fix `FAILED_PRECONDITION` when writing to a deleted document in a transaction. (#5871) +* [fixed] Fixed [firestore] failing to raise initial snapshot from an empty local cache result. (#4207) -- [fixed] Removed invalid suggestions to use `GenericTypeIndicator` from error messages. (#222) -- [changed] Updated dependency of `io.grpc.*` to its latest version (v1.50.2). +* [fixed] Removed invalid suggestions to use `GenericTypeIndicator` from error messages. (#222) +* [changed] Updated dependency of `io.grpc.*` to its latest version (v1.50.2). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.0 - -- [feature] Added +* [feature] Added [`Query.count()`](), which fetches the number of documents in the result set without actually downloading the documents. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has the following additional updates: -- [feature] Firebase now supports Kotlin coroutines. With this release, we added +* [feature] Firebase now supports Kotlin coroutines. With this release, we added [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} to `firebase-firestore-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. # 24.3.1 +* [changed] Updated dependency of `io.grpc.*` to its latest version (v1.48.1). -- [changed] Updated dependency of `io.grpc.*` to its latest version (v1.48.1). ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. # 24.3.0 +* [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library also has the following additional updates: -- [feature] Added +* [feature] Added [`Query.snapshots()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots_1) and [`DocumentReference.snapshots()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots) Kotlin Flows to listen for realtime updates. # 24.2.2 +* [fixed] Fixed an issue in `waitForPendingWrites()` that could lead to a `NullPointerException`. -- [fixed] Fixed an issue in `waitForPendingWrites()` that could lead to a `NullPointerException`. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.2.1 +* [changed] Internal refactor and test improvements. -- [changed] Internal refactor and test improvements. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.2.0 - -- [feature] Added customization support for +* [feature] Added customization support for [`FirebaseFirestore.runTransaction`](). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.1.2 +* [fixed] Fixed an issue where patching multiple fields shadows each other. (#3528). -- [fixed] Fixed an issue where patching multiple fields shadows each other. (#3528). ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.1.1 - -- [fixed] Fixed an issue in the beta version of the index engine that might cause [firestore] to +* [fixed] Fixed an issue in the beta version of the index engine that might cause [firestore] to exclude document results for limit queries with local modifications. -- [changed] [firestore] can now serialize objects with `android.net.Uri`s. +* [changed] [firestore] can now serialize objects with `android.net.Uri`s. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.1.0 - -- [feature] Added beta support for indexed query execution. You can enable indexes by invoking +* [feature] Added beta support for indexed query execution. You can enable indexes by invoking `FirebaseFirestore.setIndexConfiguration()` with the JSON index definition exported by the [firebase_cli]. Queries against the cache are executed using an index once the asynchronous index generation completes. -- [fixed] Fixed missing document fields issue with offline overlays. (#3528). +* [fixed] Fixed missing document fields issue with offline overlays. (#3528). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.0.2 - -- [fixed] Fixed a [firebase_app_check] issue that caused [firestore] listeners to stop working and +* [fixed] Fixed a [firebase_app_check] issue that caused [firestore] listeners to stop working and receive a `Permission Denied` error. This issue only occurred if the [app_check] expiration time was set to under an hour. -- [fixed] Fixed a potential problem during the shutdown of [firestore] that prevented the shutdown +* [fixed] Fixed a potential problem during the shutdown of [firestore] that prevented the shutdown from proceeding if a network connection was opened right before. -- [fixed] Fixed an NPE issue where mutations with multiple documents were not handled correctly +* [fixed] Fixed an NPE issue where mutations with multiple documents were not handled correctly during previous mutation acknowledgement. (#3490). -- [changed] Queries are now sent to the backend before the SDK starts local processing, which +* [changed] Queries are now sent to the backend before the SDK starts local processing, which reduces overall query latency. -- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and +* [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release entry. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.0.1 +* [changed] Optimized performance for offline usage. +* [changed] Optimized performance for queries with collections that contain subcollections. -- [changed] Optimized performance for offline usage. -- [changed] Optimized performance for queries with collections that contain subcollections. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.0.0 - -- [changed] This SDK now requires devices and emulators to target API level 19 (KitKat) or higher +* [changed] This SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use Android 4.4 or higher. This is due to an update in its gRPC dependency version and to align with requirements of other Firebase libraries. -- [feature] Added support for [firebase_app_check]. +* [feature] Added support for [firebase_app_check]. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.4 - -- [fixed] Fixed an issue where some fields were missed when copying in the +* [fixed] Fixed an issue where some fields were missed when copying in the `FirebaseFirestoreSettings.Builder` copy constructor. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.3 - -- [fixed] Fixed an issue that was causing failures when a data bundle with multi-byte Unicode +* [fixed] Fixed an issue that was causing failures when a data bundle with multi-byte Unicode characters was loaded. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.2 +* [changed] Improved Firestore's network condition detection. -- [changed] Improved Firestore's network condition detection. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.1 - -- [changed] The SDK now tries to immediately establish a connection to the backend when the app +* [changed] The SDK now tries to immediately establish a connection to the backend when the app enters the foreground. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.0 +* [changed] Internal infrastructure improvements. +* [changed] Internal changes to support dynamic feature modules. -- [changed] Internal infrastructure improvements. -- [changed] Internal changes to support dynamic feature modules. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.1.2 +* [changed] Internal changes in preparation for future support of dynamic feature modules. -- [changed] Internal changes in preparation for future support of dynamic feature modules. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.1.1 - -- [fixed] Fixed an issue that dropped the limit for queries loaded from [firestore] bundles that +* [fixed] Fixed an issue that dropped the limit for queries loaded from [firestore] bundles that were generated by the NodeJS SDK. -- [fixed] Fixed a bug where local cache inconsistencies were unnecessarily being resolved, causing +* [fixed] Fixed a bug where local cache inconsistencies were unnecessarily being resolved, causing the `Task` objects returned from `get()` invocations to never complete. #2404 -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.1.0 - -- [feature] Added support for [firestore] bundles via +* [feature] Added support for [firestore] bundles via [`FirebaseFirestore.loadBundle()`]() and [`FirebaseFirestore.getNamedQuery()`](). Bundles contain pre-packaged data produced with the Firebase Admin Node.js SDK and can be used to populate the cache for [firestore] without the need to read documents from the backend. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.0.2 - -- [changed] A write to a document that contains `FieldValue` transforms is no longer split into two +* [changed] A write to a document that contains `FieldValue` transforms is no longer split into two separate operations. This reduces the number of writes that the backend performs and allows each `WriteBatch` to hold 500 writes regardless of how many `FieldValue` transformations are attached. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.0.1 - -- [changed] Removed excess validation of null and NaN values in query filters. This more closely +* [changed] Removed excess validation of null and NaN values in query filters. This more closely aligns the SDK with the [firestore] backend, which has always accepted null and NaN for all operators. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.0.0 - -- [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. Any timestamp in a +* [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. Any timestamp in a [firestore] document is now returned as a `Timestamp`. To convert `Timestamp` classes to `java.util.Date`, use [`Timestamp.toDate()`](). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.7.1 +* [changed] Added new internal HTTP headers to the gRPC connection. -- [changed] Added new internal HTTP headers to the gRPC connection. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.7.0 - -- [feature] Added +* [feature] Added [`Query.whereNotIn()`](>) and [`Query.whereNotEqualTo()`]() @@ -604,406 +554,373 @@ Kotlin extensions library has no additional updates. specified value. Neither query operator finds documents where the specified field isn't present. - -- [fixed] Fixed an issue that caused poor performance for queries that filtered results using nested +* [fixed] Fixed an issue that caused poor performance for queries that filtered results using nested array values. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.6.0 - -- [fixed] Removed a delay that may have prevented [firestore] from immediately reestablishing a +* [fixed] Removed a delay that may have prevented [firestore] from immediately reestablishing a network connection if a connectivity change occurred while the app was in the background. -- [fixed] Fixed an issue that may have prevented the client from connecting to the backend +* [fixed] Fixed an issue that may have prevented the client from connecting to the backend immediately after a user signed in. -- [feature] Added support for connecting to the Firebase Emulator Suite via a new method, +* [feature] Added support for connecting to the Firebase Emulator Suite via a new method, [`FirebaseFirestore#useEmulator()`](). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.5.0 - -- [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The +* [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The new artifact is incompatible with the old one, so this library needed to be upgraded to avoid conflicts. No developer action is necessary. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.3 - -- [changed] [firestore] now limits the number of concurrent document lookups it will perform when +* [changed] [firestore] now limits the number of concurrent document lookups it will perform when resolving inconsistencies in the local cache. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.2 - -- [changed] Removed Guava dependency from the SDK. This change is the first step in eliminating +* [changed] Removed Guava dependency from the SDK. This change is the first step in eliminating crashes caused by apps that depend on the wrong flavor of Guava. ([Issue #1125](//github.com/firebase/firebase-android-sdk/issues/1125)) -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.1 - -- [fixed] Fixed a performance regression introduced by the addition of `Query.limitToLast(n: long)` +* [fixed] Fixed a performance regression introduced by the addition of `Query.limitToLast(n: long)` in [firestore] v21.3.1. -- [changed] Changed the in-memory representation of [firestore] documents to reduce memory +* [changed] Changed the in-memory representation of [firestore] documents to reduce memory allocations and improve performance. Calls to `DocumentSnapshot.getData()` and `DocumentSnapshot.toObject()` will see the biggest improvement. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.0 - -- [feature] Cloud Firestore previously required that every document read in a transaction must also +* [feature] Cloud Firestore previously required that every document read in a transaction must also be written. This requirement has been removed, and you can now read a document in a transaction without writing to it. -- [changed] Cloud Firestore now recovers more quickly when connections suffering packet loss return +* [changed] Cloud Firestore now recovers more quickly when connections suffering packet loss return to normal. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.3.1 +* [feature] Added `Query.limitToLast(n: long)`, which returns the last `n` documents as the result. -- [feature] Added `Query.limitToLast(n: long)`, which returns the last `n` documents as the result. ## Kotlin - The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.3.0 - -- [feature] Added `Query.whereIn()` and `Query.whereArrayContainsAny()` query operators. +* [feature] Added `Query.whereIn()` and `Query.whereArrayContainsAny()` query operators. `Query.whereIn()` finds documents where a specified field’s value is IN a specified array. `Query.whereArrayContainsAny()` finds documents where a specified field is an array and contains ANY element of a specified array. -- [changed] Improved the performance of repeatedly executed queries. Recently executed queries +* [changed] Improved the performance of repeatedly executed queries. Recently executed queries should see dramatic improvements. This benefit is reduced if changes accumulate while the query is inactive. Queries that use the `limit()` API may not always benefit, depending on the accumulated changes. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.2.1 - -- [fixed] Fixed an issue where devices targeting Android API level 19 or earlier would crash when +* [fixed] Fixed an issue where devices targeting Android API level 19 or earlier would crash when they were unable to connect to [firestore]. -- [fixed] Fixed a race condition in Documents where access to `getData` and `getField` on the same +* [fixed] Fixed a race condition in Documents where access to `getData` and `getField` on the same document in different threads could cause a `NullPointerException`. -- [fixed] Fixed a race condition that could cause a `NullPointerException` during client +* [fixed] Fixed a race condition that could cause a `NullPointerException` during client initialization. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.2.0 - -- [feature] Added an +* [feature] Added an [`addSnapshotsInSyncListener()`]() method to `FirebaseFirestore` that notifies you when all your snapshot listeners are in sync with each other. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.1.1 - -- [fixed] Addressed a regression in v21.1.0 that caused the crash: "Cannot add document to the +* [fixed] Addressed a regression in v21.1.0 that caused the crash: "Cannot add document to the RemoteDocumentCache with a read time of zero". -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.1.0 - Warning: We have received reports that this **v21.1.0 release** of the Firebase Android SDK for [firestore] can trigger an uncaught exception. Make sure to update to the next version of the Cloud Firestore SDK to get the fix. -- [feature] Added a +* [feature] Added a [`FirebaseFirestore.terminate()`]() method which terminates the instance, releasing any held resources. Once it completes, you can optionally call `clearPersistence()` to wipe persisted [firestore] data from disk. -- [feature] Added a +* [feature] Added a [`FirebaseFirestore.waitForPendingWrites()`]() method which allows users to wait on a promise that resolves when all pending writes are acknowledged by the [firestore] backend. -- [changed] Transactions now perform exponential backoff before retrying. This means transactions on +* [changed] Transactions now perform exponential backoff before retrying. This means transactions on highly contended documents are more likely to succeed. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.0.0 - -- [changed] Transactions are now more flexible. Some sequences of operations that were previously +* [changed] Transactions are now more flexible. Some sequences of operations that were previously incorrectly disallowed are now allowed. For example, after reading a document that doesn't exist, you can now set it multiple times successfully in a transaction. -- [fixed] Fixed an issue where query results were temporarily missing documents that previously had +* [fixed] Fixed an issue where query results were temporarily missing documents that previously had not matched but had been updated to now match the query. Refer to this [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/155) for more details. -- [changed] Added nullability annotations to improve the Kotlin developer experience. +* [changed] Added nullability annotations to improve the Kotlin developer experience. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 20.2.0 - -- [feature] Added a `@DocumentId` annotation which can be used on a `DocumentReference` or `String` +* [feature] Added a `@DocumentId` annotation which can be used on a `DocumentReference` or `String` property in a POJO to indicate that the SDK should automatically populate it with the document's ID. -- [fixed] Fixed an internal assertion that was triggered when an update with a +* [fixed] Fixed an internal assertion that was triggered when an update with a `FieldValue.serverTimestamp()` and an update with a `FieldValue.increment()` were pending for the same document. Refer to this [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/491) for more details. -- [changed] Improved performance of queries with large result sets. -- [changed] Improved performance for queries with filters that only return a small subset of the +* [changed] Improved performance of queries with large result sets. +* [changed] Improved performance for queries with filters that only return a small subset of the documents in a collection. -- [changed] Instead of failing silently, [firestore] now crashes the client app if it fails to load +* [changed] Instead of failing silently, [firestore] now crashes the client app if it fails to load SSL Ciphers. To avoid these crashes, you must bundle Conscrypt to support non-GMSCore devices on Android API level 19 (KitKat) or earlier (for more information, refer to [TLS on Android](https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-on-android)). -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 20.1.0 - -- [changed] SSL and gRPC initialization now happens on a separate thread, which reduces the time +* [changed] SSL and gRPC initialization now happens on a separate thread, which reduces the time taken to produce the first query result. -- [feature] Added `clearPersistence()`, which clears the persistent storage including pending writes +* [feature] Added `clearPersistence()`, which clears the persistent storage including pending writes and cached documents. This is intended to help write reliable tests. Refer to this [GitHub issue](https://github.com/firebase/firebase-js-sdk/issues/449) for more details. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 19.0.2 - -- [fixed] Updated gRPC to 1.21.0. A bug in the prior version would occasionally cause a crash if a +* [fixed] Updated gRPC to 1.21.0. A bug in the prior version would occasionally cause a crash if a network state change occurred concurrently with an RPC. Refer to [GitHub issue #428](https://github.com/firebase/firebase-android-sdk/issues/428) for more details. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 19.0.1 - -- [fixed] Fixed an issue that prevented schema migrations for clients with large offline datasets. +* [fixed] Fixed an issue that prevented schema migrations for clients with large offline datasets. Refer to this [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/370) for more details. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 19.0.0 - -- [feature] You can now query across all collections in your database with a given collection ID +* [feature] You can now query across all collections in your database with a given collection ID using the [`FirebaseFirestore.collectionGroup()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#collectionGroup) method. -- [changed] The garbage collection process for on-disk persistence that removes older documents is +* [changed] The garbage collection process for on-disk persistence that removes older documents is now enabled by default. The SDK will attempt to periodically clean up older, unused documents once the on-disk cache passes a threshold size (default: 100 MB). See [Configure cache size](/docs/firestore/manage-data/enable-offline#configure_cache_size) for details on how to configure this. -- [changed] Internal changes that rely on an updated API to obtain authentication credentials. If +* [changed] Internal changes that rely on an updated API to obtain authentication credentials. If you use [firebase_auth], update to `firebase-auth` v17.0.0 or later to ensure functionality alignment. -## Kotlin +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 18.2.0 +* [unchanged] No changes to the base `firebase-firestore` library. -- [unchanged] No changes to the base `firebase-firestore` library. ## Kotlin - -- [feature] The beta release of a [firestore] Android library with Kotlin extensions is now +* [feature] The beta release of a [firestore] Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base `firebase-firestore` library. To learn more, visit the [[firestore] KTX documentation](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary). # 18.2.0 - -- [feature] Added +* [feature] Added [`FieldValue.increment()`](), which can be used in `update()` and `set(..., SetOptions.merge())` to increment or decrement numeric field values safely without transactions. -- [feature] Added functional interface +* [feature] Added functional interface [`FirebaseFirestore.runBatch()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runBatch( com.google.firebase.firestore.WriteBatch.Function)), similar to [`FirebaseFirestore.runTransaction()`](), which allows a developer to focus on the mutations of the batch rather than on creating and committing the batch. -- [changed] Prepared the persistence layer to support collection group queries. While this feature +* [changed] Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release. -- [changed] Added `@RestrictTo` annotations to discourage the use of APIs that are not public. This +* [changed] Added `@RestrictTo` annotations to discourage the use of APIs that are not public. This affects internal APIs that were previously obfuscated and are not mentioned in our documentation. -- [changed] Improved error messages for certain Number types that are not supported by our +* [changed] Improved error messages for certain Number types that are not supported by our serialization layer. # 18.1.0 - -- [changed] Internal changes to ensure functionality alignment with other SDK releases. -- [fixed] Fixed calculation of SQLite database size on Android 9 Pie devices. On these devices, the +* [changed] Internal changes to ensure functionality alignment with other SDK releases. +* [fixed] Fixed calculation of SQLite database size on Android 9 Pie devices. On these devices, the previous method sometimes incorrectly calculated the size by a few MBs, potentially delaying garbage collection. # 18.0.1 - -- [fixed] Fixed an issue where [firestore] would crash if handling write batches larger than 2 MB in +* [fixed] Fixed an issue where [firestore] would crash if handling write batches larger than 2 MB in size. -- [changed] [firestore] now recovers more quickly from long periods without network access. +* [changed] [firestore] now recovers more quickly from long periods without network access. # 18.0.0 - -- [changed] The `timestampsInSnapshotsEnabled` setting is now enabled by default. Timestamp fields +* [changed] The `timestampsInSnapshotsEnabled` setting is now enabled by default. Timestamp fields that read from a `DocumentSnapshot` are now returned as `Timestamp` objects instead of `Date` objects. This is a breaking change; developers must update any code that expects to receive a `Date` object. See [`FirebaseFirestoreSettings.Builder.setTimestampsInSnapshotsEnabled()`]() for more details. -- [feature] Custom objects (POJOs) can now be passed in several ways: as a field value in +* [feature] Custom objects (POJOs) can now be passed in several ways: as a field value in `update()`, within `Map<>` objects passed to `set()`, in array transform operations, and in query filters. -- [feature] `DocumentSnapshot.get()` now supports retrieving fields as custom objects (POJOs) by +* [feature] `DocumentSnapshot.get()` now supports retrieving fields as custom objects (POJOs) by passing a `Class` instance, e.g., `snapshot.get("field", CustomType.class)`. -- [fixed] Fixed an issue where if an app sent a write to the server, but the app was shut down +* [fixed] Fixed an issue where if an app sent a write to the server, but the app was shut down before a listener received the write, the app could crash. # 17.1.5 - -- [changed] [firestore] now recovers more quickly from bad network states. -- [changed] Improved performance for reading large collections. -- [fixed] Offline persistence now properly records schema downgrades. This is a forward-looking +* [changed] [firestore] now recovers more quickly from bad network states. +* [changed] Improved performance for reading large collections. +* [fixed] Offline persistence now properly records schema downgrades. This is a forward-looking change that allows you to safely downgrade from future SDK versions to this version (v17.1.5). You can already safely downgrade versions now depending on the source version. For example, you can safely downgrade from v17.1.4 to v17.1.2 because there are no schema changes between those versions. Related: https://github.com/firebase/firebase-android-sdk/issues/134 # 17.1.4 - -- [fixed] Fixed a SQLite transaction-handling issue that occasionally masked exceptions when +* [fixed] Fixed a SQLite transaction-handling issue that occasionally masked exceptions when Firestore closed a transaction that was never started. For more information, see the [issue report in GitHub](https://github.com/firebase/firebase-android-sdk/issues/115). -- [fixed] Fixed a race condition that caused a `SQLiteDatabaseLockedException` when an app attempted +* [fixed] Fixed a race condition that caused a `SQLiteDatabaseLockedException` when an app attempted to access the SQLite database from multiple threads. # 17.1.2 - -- [changed] Changed how the SDK handles locally-updated documents while syncing those updates with +* [changed] Changed how the SDK handles locally-updated documents while syncing those updates with Cloud Firestore servers. This can lead to slight behavior changes and may affect the [`SnapshotMetadata.hasPendingWrites()`]() metadata flag. -- [changed] Eliminated superfluous update events for locally cached documents that are known to lag +* [changed] Eliminated superfluous update events for locally cached documents that are known to lag behind the server version. Instead, the SDK buffers these events until the client has caught up with the server. # 17.1.1 - -- [fixed] Fixed an issue where the first `get()` call made after being offline could incorrectly +* [fixed] Fixed an issue where the first `get()` call made after being offline could incorrectly return cached data without attempting to reach the backend. -- [changed] Changed `get()` to only make one attempt to reach the backend before returning cached +* [changed] Changed `get()` to only make one attempt to reach the backend before returning cached data, potentially reducing delays while offline. -- [fixed] Fixed an issue that caused Firebase to drop empty objects from calls to +* [fixed] Fixed an issue that caused Firebase to drop empty objects from calls to `set(..., SetOptions.merge())`. -- [fixed] Updated printf-style templates to ensure that they're compile time constants. Previously, +* [fixed] Updated printf-style templates to ensure that they're compile time constants. Previously, some were influenced by error messages. When those error messages contained `%p` or other, related tokens, `String.format()` would throw an exception. -- [changed] Some SDK errors that represent common mistakes, like permission errors or missing +* [changed] Some SDK errors that represent common mistakes, like permission errors or missing indexes, are automatically logged as warnings in addition to being surfaced via the API. # 17.1.0 - -- [fixed] Corrected an issue with methods in the Cloud Firestore v17.0.5 release. To avoid potential +* [fixed] Corrected an issue with methods in the Cloud Firestore v17.0.5 release. To avoid potential errors, don't use v17.0.5. # 17.0.5 - -- [feature] Added +* [feature] Added [`FieldValue.arrayUnion()`]() and [`FieldValue.arrayRemove()`]() to atomically add and remove elements from an array field in a document. -- [feature] Added +* [feature] Added [`Query.whereArrayContains()`](/docs/reference/android/com/google/firebase/firestore/Query.html#whereArrayContains(com.google.firebase.firestore.FieldPath, java.lang.Object)) query operator to find documents where an array field contains a specific element. -- [changed] Improved offline performance with many outstanding writes. -- [fixed] Firestore will now recover from auth token expiration when the system clock is wrong. +* [changed] Improved offline performance with many outstanding writes. +* [fixed] Firestore will now recover from auth token expiration when the system clock is wrong. # 17.0.4 - -- [fixed] Fixed an issue where queries returned fewer results than they should. The issue related to +* [fixed] Fixed an issue where queries returned fewer results than they should. The issue related to [improper caching](https://github.com/firebase/firebase-ios-sdk/issues/1548), so clients may use extra bandwidth the first time they launch with this version of the SDK, as they re-download cleared cached data. # 17.0.3 - -- [changed] The [`Timestamp`](/docs/reference/android/com/google/firebase/Timestamp) class now +* [changed] The [`Timestamp`](/docs/reference/android/com/google/firebase/Timestamp) class now implements [`Parcelable`](//developer.android.com/reference/android/os/Parcelable) in addition to [`Comparable`](//developer.android.com/reference/java/lang/Comparable). # 17.0.2 - -- [changed] gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker failover between +* [changed] gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker failover between Wi-Fi and cellular networks. # 17.0.1 - -- [fixed] Fixed an issue where `set()` didn't correctly respect +* [fixed] Fixed an issue where `set()` didn't correctly respect [`SetOptions.mergeFields()`](>) for data containing [`FieldValue.delete()`]() or [`FieldValue.serverTimestamp()`]() values. + diff --git a/firebase-firestore/gradle.properties b/firebase-firestore/gradle.properties index dcec8dcda61..6ecdc7bd1f2 100644 --- a/firebase-firestore/gradle.properties +++ b/firebase-firestore/gradle.properties @@ -1,2 +1,2 @@ -version=26.0.2 -latestReleasedVersion=26.0.1 +version=26.0.3 +latestReleasedVersion=26.0.2 diff --git a/firebase-sessions/CHANGELOG.md b/firebase-sessions/CHANGELOG.md index d4df472a4b8..033134ae30f 100644 --- a/firebase-sessions/CHANGELOG.md +++ b/firebase-sessions/CHANGELOG.md @@ -1,82 +1,69 @@ # Unreleased -- [fixed] Made creating DataStore files more resilient (#7440) -# 3.0.2 +# 3.0.3 +* [fixed] Made creating DataStore files more resilient (#7440) -- [changed] Bumped internal dependencies. +# 3.0.2 +* [changed] Bumped internal dependencies. # 3.0.1 - -- [fixed] Bumped DataStore dependency to include the mitigation for `CorruptionException` released +* [fixed] Bumped DataStore dependency to include the mitigation for `CorruptionException` released in version `1.1.5`. See Jetpacks' DataStore [release notes](https://developer.android.com/jetpack/androidx/releases/datastore#1.1.5). # 3.0.0 - -- [changed] Added internal api for Crashlytics to notify Sessions of crash events -- [changed] Use multi-process DataStore instead of Preferences DataStore -- [changed] Update the heuristic to detect cold app starts -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +* [changed] Added internal api for Crashlytics to notify Sessions of crash events +* [changed] Use multi-process DataStore instead of Preferences DataStore +* [changed] Update the heuristic to detect cold app starts +* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. # 2.1.1 - -- [unchanged] Updated to keep SDK versions aligned. +* [unchanged] Updated to keep SDK versions aligned. # 2.1.0 - -- [changed] Add warning for known issue b/328687152 -- [changed] Use Dagger for dependency injection -- [changed] Updated datastore dependency to v1.1.3 to fix +* [changed] Add warning for known issue b/328687152 +* [changed] Use Dagger for dependency injection +* [changed] Updated datastore dependency to v1.1.3 to fix [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8). # 2.0.9 - -- [fixed] Make AQS resilient to background init in multi-process apps. +* [fixed] Make AQS resilient to background init in multi-process apps. # 2.0.7 - -- [fixed] Removed extraneous logs that risk leaking internal identifiers. +* [fixed] Removed extraneous logs that risk leaking internal identifiers. # 2.0.6 - -- [changed] Updated protobuf dependency to `3.25.5` to fix +* [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8). # 2.0.5 - -- [unchanged] Updated to keep SDK versions aligned. +* [unchanged] Updated to keep SDK versions aligned. # 2.0.4 - -- [fixed] Handled datastore writes when device has full internal memory more gracefully. (GitHub +* [fixed] Handled datastore writes when device has full internal memory more gracefully. (GitHub [#5859](https://github.com/firebase/firebase-android-sdk/issues/5859)) -- [fixed] Safely unbind malfunctioning session lifecycle service to release service connections. +* [fixed] Safely unbind malfunctioning session lifecycle service to release service connections. (GitHub [#5869](https://github.com/firebase/firebase-android-sdk/issues/5869)) # 1.2.3 - -- [fixed] Force validation or rotation of FIDs. +* [fixed] Force validation or rotation of FIDs. # 1.2.1 - -- [changed] Bump internal dependencies. -- [fixed] Handle corruption in DataStore Preferences more gracefully. +* [changed] Bump internal dependencies. +* [fixed] Handle corruption in DataStore Preferences more gracefully. # 1.2.0 - -- [feature] Added support for accurate sessions on multi-process apps. +* [feature] Added support for accurate sessions on multi-process apps. # 1.0.2 - -- [fixed] Made Sessions more resilient to the FirebaseApp instance being deleted. +* [fixed] Made Sessions more resilient to the FirebaseApp instance being deleted. # 1.0.1 - -- [fixed] Fixed NPE when no version name is set +* [fixed] Fixed NPE when no version name is set ([#5195](https://github.com/firebase/firebase-android-sdk/issues/5195)). -- [fixed] Populate DataCollectionStatus fields for Crashlytics and Perf. +* [fixed] Populate DataCollectionStatus fields for Crashlytics and Perf. # 1.0.0 +* [feature] Initial Firebase sessions library. -- [feature] Initial Firebase sessions library. diff --git a/firebase-sessions/gradle.properties b/firebase-sessions/gradle.properties index f9c1b536899..d585b9ea011 100644 --- a/firebase-sessions/gradle.properties +++ b/firebase-sessions/gradle.properties @@ -12,5 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -version=3.0.3 -latestReleasedVersion=3.0.2 +version=3.0.4 +latestReleasedVersion=3.0.3 From b95d41a23b69a601a09308e5e825ef9979ee7ae4 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Fri, 10 Oct 2025 10:47:19 -0400 Subject: [PATCH 2/3] fix ai changelog --- firebase-ai/CHANGELOG.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/firebase-ai/CHANGELOG.md b/firebase-ai/CHANGELOG.md index 0dd442b4339..ddb608eef68 100644 --- a/firebase-ai/CHANGELOG.md +++ b/firebase-ai/CHANGELOG.md @@ -2,15 +2,15 @@ # 17.4.0 -* [changed] **Breaking Change**: Removed the `candidateCount` option from `LiveGenerationConfig` -* [changed] Added support for user interrupts for the `startAudioConversation` method in the +- [changed] --Breaking Change--: Removed the `candidateCount` option from `LiveGenerationConfig` +- [changed] Added support for user interrupts for the `startAudioConversation` method in the `LiveSession` class. (#7413) -* [changed] Added support for the URL context tool, which allows the model to access content from +- [changed] Added support for the URL context tool, which allows the model to access content from provided public web URLs to inform and enhance its responses. (#7382) -* [changed] Added better error messages to `ServiceConnectionHandshakeFailedException` (#7412) -* [changed] Marked the public constructor for `UsageMetadata` as deprecated (#7420) -* [changed] Using Firebase AI Logic with the Gemini Developer API is now Generally Available (GA). -* [changed] Using Firebase AI Logic with the Imagen generation APIs is now Generally Available (GA). +- [changed] Added better error messages to `ServiceConnectionHandshakeFailedException` (#7412) +- [changed] Marked the public constructor for `UsageMetadata` as deprecated (#7420) +- [changed] Using Firebase AI Logic with the Gemini Developer API is now Generally Available (GA). +- [changed] Using Firebase AI Logic with the Imagen generation APIs is now Generally Available (GA). # 17.3.0 * [changed] Bumped internal dependencies. @@ -93,4 +93,3 @@ features will be in this new SDK. Note: This feature is in Public Preview, which means that it is not subject to any SLA or deprecation policy and could change in backwards-incompatible ways. - From 06d5c52fe9c67220d73a12558aad775922ccf586 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Fri, 10 Oct 2025 10:52:27 -0400 Subject: [PATCH 3/3] Formatting --- firebase-ai/CHANGELOG.md | 68 ++-- firebase-crashlytics-ndk/CHANGELOG.md | 208 ++++++---- firebase-crashlytics/CHANGELOG.md | 343 ++++++++++------- firebase-dataconnect/CHANGELOG.md | 74 ++-- firebase-firestore/CHANGELOG.md | 528 +++++++++++++++----------- firebase-sessions/CHANGELOG.md | 67 ++-- 6 files changed, 764 insertions(+), 524 deletions(-) diff --git a/firebase-ai/CHANGELOG.md b/firebase-ai/CHANGELOG.md index ddb608eef68..616d85ee38c 100644 --- a/firebase-ai/CHANGELOG.md +++ b/firebase-ai/CHANGELOG.md @@ -1,8 +1,8 @@ # Unreleased - # 17.4.0 -- [changed] --Breaking Change--: Removed the `candidateCount` option from `LiveGenerationConfig` + +- [changed] **Breaking Change**: Removed the `candidateCount` option from `LiveGenerationConfig` - [changed] Added support for user interrupts for the `startAudioConversation` method in the `LiveSession` class. (#7413) - [changed] Added support for the URL context tool, which allows the model to access content from @@ -13,71 +13,78 @@ - [changed] Using Firebase AI Logic with the Imagen generation APIs is now Generally Available (GA). # 17.3.0 -* [changed] Bumped internal dependencies. -* [feature] Added support for code execution. -* [changed] Marked the public constructors for `ExecutableCodePart` and `CodeExecutionResultPart` as + +- [changed] Bumped internal dependencies. +- [feature] Added support for code execution. +- [changed] Marked the public constructors for `ExecutableCodePart` and `CodeExecutionResultPart` as deprecated. -* [feature] Introduced `MissingPermissionsException`, which is thrown when the necessary permissions +- [feature] Introduced `MissingPermissionsException`, which is thrown when the necessary permissions have not been granted by the user. -* [feature] Added helper functions to `LiveSession` to allow developers to track the status of the +- [feature] Added helper functions to `LiveSession` to allow developers to track the status of the audio session and the underlying websocket connection. -* [changed] Added new values to `HarmCategory` (#7324) -* [fixed] Fixed an issue that caused unknown or empty `Part`s to throw an exception. Instead, we now +- [changed] Added new values to `HarmCategory` (#7324) +- [fixed] Fixed an issue that caused unknown or empty `Part`s to throw an exception. Instead, we now log them and filter them from the response (#7333) # 17.2.0 -* [feature] Added support for returning thought summaries, which are synthesized versions of a + +- [feature] Added support for returning thought summaries, which are synthesized versions of a model's internal reasoning process. -* [fixed] Fixed an issue causing the accessor methods in `GenerateContentResponse` to throw an +- [fixed] Fixed an issue causing the accessor methods in `GenerateContentResponse` to throw an exception when the response contained no candidates. -* [changed] Added better description for requests which fail due to the Gemini API not being +- [changed] Added better description for requests which fail due to the Gemini API not being configured. -* [changed] Added a `dilation` parameter to `ImagenMaskReference.generateMaskAndPadForOutpainting` +- [changed] Added a `dilation` parameter to `ImagenMaskReference.generateMaskAndPadForOutpainting` (#7260) -* [feature] Added support for limited-use tokens with Firebase App Check. These limited-use tokens +- [feature] Added support for limited-use tokens with Firebase App Check. These limited-use tokens are required for an upcoming optional feature called _replay protection_. We recommend [enabling the usage of limited-use tokens](https://firebase.google.com/docs/ai-logic/app-check) now so that when replay protection becomes available, you can enable it sooner because more of your users will be on versions of your app that send limited-use tokens. (#7285) # 17.1.0 + ======= -* [feature] added support for Imagen Editing, including inpainting, outpainting, control, style +- [feature] added support for Imagen Editing, including inpainting, outpainting, control, style transfer, and subject references (#7075) -* [feature] **Preview:** Added support for bidirectional streaming in Gemini Developer Api +- [feature] **Preview:** Added support for bidirectional streaming in Gemini Developer Api # 17.0.0 -* [feature] Added support for configuring the "thinking" budget when using Gemini 2.5 series models. + +- [feature] Added support for configuring the "thinking" budget when using Gemini 2.5 series models. (#6990) -* [feature] **Breaking Change**: Add support for grounding with Google Search (#7042). +- [feature] **Breaking Change**: Add support for grounding with Google Search (#7042). - **Action Required:** Update all references of `groundingAttributions`, `webSearchQueries`, `retrievalQueries` in `GroundingMetadata` to be non-optional. -* [changed] require at least one argument for `generateContent()`, `generateContentStream()` and +- [changed] require at least one argument for `generateContent()`, `generateContentStream()` and `countTokens()`. -* [feature] Added new overloads for `generateContent()`, `generateContentStream()` and +- [feature] Added new overloads for `generateContent()`, `generateContentStream()` and `countTokens()` that take a `List` parameter. -* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. # 16.2.0 -* [changed] Deprecate the `totalBillableCharacters` field (only usable with pre-2.0 models). (#7042) -* [feature] Added support for extra schema properties like `title`, `minItems`, `maxItems`, + +- [changed] Deprecate the `totalBillableCharacters` field (only usable with pre-2.0 models). (#7042) +- [feature] Added support for extra schema properties like `title`, `minItems`, `maxItems`, `minimum` and `maximum`. As well as support for the `anyOf` schema. (#7013) # 16.1.0 -* [fixed] Fixed `FirebaseAI.getInstance` StackOverflowException (#6971) -* [fixed] Fixed an issue that was causing the SDK to send empty `FunctionDeclaration` descriptions + +- [fixed] Fixed `FirebaseAI.getInstance` StackOverflowException (#6971) +- [fixed] Fixed an issue that was causing the SDK to send empty `FunctionDeclaration` descriptions to the API. -* [changed] Introduced the `Voice` class, which accepts a voice name, and deprecated the `Voices` +- [changed] Introduced the `Voice` class, which accepts a voice name, and deprecated the `Voices` class. -* [changed] **Breaking Change**: Updated `SpeechConfig` to take in `Voice` class instead of `Voices` +- [changed] **Breaking Change**: Updated `SpeechConfig` to take in `Voice` class instead of `Voices` class. - **Action Required:** Update all references of `SpeechConfig` initialization to use `Voice` class. -* [fixed] Fix incorrect model name in count token requests to the developer API backend +- [fixed] Fix incorrect model name in count token requests to the developer API backend # 16.0.0 -* [feature] Initial release of the Firebase AI SDK (`firebase-ai`). This SDK _replaces_ the previous + +- [feature] Initial release of the Firebase AI SDK (`firebase-ai`). This SDK _replaces_ the previous Vertex AI in Firebase SDK (`firebase-vertexai`) to accommodate the evolving set of supported features and services. - The new Firebase AI SDK provides **Preview** support for the Gemini Developer API, including its @@ -87,7 +94,8 @@ If you're using the old `firebase-vertexai`, we recommend [migrating to `firebase-ai`](/docs/ai-logic/migrate-to-latest-sdk) because all new development and features will be in this new SDK. -* [feature] **Preview:** Added support for specifying response modalities in `GenerationConfig` + +- [feature] **Preview:** Added support for specifying response modalities in `GenerationConfig` (only available in the new `firebase-ai` package). This includes support for image generation using [specific Gemini models](/docs/vertex-ai/models). diff --git a/firebase-crashlytics-ndk/CHANGELOG.md b/firebase-crashlytics-ndk/CHANGELOG.md index c1eb95f19df..369baea1949 100644 --- a/firebase-crashlytics-ndk/CHANGELOG.md +++ b/firebase-crashlytics-ndk/CHANGELOG.md @@ -1,87 +1,113 @@ # Unreleased - # 20.0.3 -* [changed] Bumped internal dependencies. + +- [changed] Bumped internal dependencies. # 20.0.2 -* [changed] Bumped internal dependencies. + +- [changed] Bumped internal dependencies. # 20.0.1 -* [changed] Updated `firebase-crashlytics` dependency to 20.0.1 + +- [changed] Updated `firebase-crashlytics` dependency to 20.0.1 # 20.0.0 -* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. + +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. # 19.4.4 -* [changed] Updated `firebase-crashlytics` dependency to v19.4.4 + +- [changed] Updated `firebase-crashlytics` dependency to v19.4.4 # 19.4.3 -* [changed] Updated internal Crashpad version to commit `21a20e`. + +- [changed] Updated internal Crashpad version to commit `21a20e`. # 19.4.2 -* [changed] Updated `firebase-crashlytics` dependency to v19.4.2 + +- [changed] Updated `firebase-crashlytics` dependency to v19.4.2 # 19.4.1 -* [changed] Updated `firebase-crashlytics` dependency to v19.4.1 + +- [changed] Updated `firebase-crashlytics` dependency to v19.4.1 # 19.3.0 -* [changed] Updated `firebase-crashlytics` dependency to v19.3.0 + +- [changed] Updated `firebase-crashlytics` dependency to v19.3.0 # 19.2.1 -* [changed] Updated `firebase-crashlytics` dependency to v19.2.1 + +- [changed] Updated `firebase-crashlytics` dependency to v19.2.1 # 19.2.0 -* [changed] Updated `firebase-crashlytics` dependency to v19.2.0 + +- [changed] Updated `firebase-crashlytics` dependency to v19.2.0 # 19.1.0 -* [changed] Updated `firebase-crashlytics` dependency to v19.1.0 + +- [changed] Updated `firebase-crashlytics` dependency to v19.1.0 # 19.0.3 -* [changed] Updated `firebase-crashlytics` dependency to v19.0.3 + +- [changed] Updated `firebase-crashlytics` dependency to v19.0.3 # 19.0.2 -* [changed] Update libcrashlytics to support 16 kb page sizes. + +- [changed] Update libcrashlytics to support 16 kb page sizes. # 19.0.1 -* [changed] Updated `firebase-crashlytics` dependency to v19.0.1 + +- [changed] Updated `firebase-crashlytics` dependency to v19.0.1 # 19.0.0 -* [changed] Bump internal dependencies + +- [changed] Bump internal dependencies # 18.6.3 -* [changed] Updated `firebase-crashlytics` dependency to v18.6.3 + +- [changed] Updated `firebase-crashlytics` dependency to v18.6.3 # 18.6.0 -* [changed] Updated `firebase-crashlytics` dependency to v18.6.0 + +- [changed] Updated `firebase-crashlytics` dependency to v18.6.0 # 18.5.0 -* [changed] Updated `firebase-crashlytics` dependency to v18.5.0 + +- [changed] Updated `firebase-crashlytics` dependency to v18.5.0 # 18.4.3 -* [changed] Updated `firebase-crashlytics` dependency to v18.4.3 + +- [changed] Updated `firebase-crashlytics` dependency to v18.4.3 # 18.4.2 -* [changed] Updated `firebase-crashlytics` dependency to v18.4.2 + +- [changed] Updated `firebase-crashlytics` dependency to v18.4.2 # 18.4.1 -* [changed] Updated `firebase-crashlytics` dependency to v18.4.1 + +- [changed] Updated `firebase-crashlytics` dependency to v18.4.1 # 18.4.0 -* [changed] Updated `firebase-crashlytics` dependency to v18.4.0 + +- [changed] Updated `firebase-crashlytics` dependency to v18.4.0 # 18.3.7 -* [changed] Updated `firebase-crashlytics` dependency to v18.3.7 + +- [changed] Updated `firebase-crashlytics` dependency to v18.3.7 # 18.3.6 -* [changed] Updated `firebase-crashlytics` dependency to v18.3.6. + +- [changed] Updated `firebase-crashlytics` dependency to v18.3.6. # 18.3.5 -* [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing + +- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing a nondeterministic crash on startup. -* [changed] Updated `firebase-crashlytics` dependency to v18.3.5. +- [changed] Updated `firebase-crashlytics` dependency to v18.3.5. # 18.3.4 +
-* [changed] [crashlytics] NDK crash reporting will now start automatically when the [crashlytics] +- [changed] [crashlytics] NDK crash reporting will now start automatically when the [crashlytics] NDK dependency is included in your app. -* [changed] The [crashlytics] Gradle plugin has new tasks to support uploading symbol files to +- [changed] The [crashlytics] Gradle plugin has new tasks to support uploading symbol files to [crashlytics] servers. See the [[crashlytics] Gradle plugin documentation](/docs/crashlytics/ndk-reports-new-sdk) for more information. - diff --git a/firebase-crashlytics/CHANGELOG.md b/firebase-crashlytics/CHANGELOG.md index b08f5655d40..17c9b43d8c9 100644 --- a/firebase-crashlytics/CHANGELOG.md +++ b/firebase-crashlytics/CHANGELOG.md @@ -1,259 +1,289 @@ # Unreleased - # 20.0.3 -* [fixed] Made creating DataStore files more resilient [#7440] + +- [fixed] Made creating DataStore files more resilient [#7440] # 20.0.2 -* [changed] Bumped internal dependencies. + +- [changed] Bumped internal dependencies. # 20.0.1 -* [changed] Updated `firebase-sessions` dependency to v3.0.1 + +- [changed] Updated `firebase-sessions` dependency to v3.0.1 # 20.0.0 -* [changed] **Breaking Change**: Removed deprecated public constructor + +- [changed] **Breaking Change**: Removed deprecated public constructor `KeyValueBuilder(crashlytics: FirebaseCrashlytics)` -* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -* [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). # 19.4.4 -* [fixed] Fixed more strict mode violations +- [fixed] Fixed more strict mode violations ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.3 -* [fixed] Fixed UnbufferedIoViolation strict mode violation [#6822] +- [fixed] Fixed UnbufferedIoViolation strict mode violation [#6822] ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.2 -* [changed] Internal changes to read version control info more efficiently [#6754] -* [fixed] Fixed NoSuchMethodError when getting process info on Android 13 on some devices [#6720] -* [changed] Updated `firebase-sessions` dependency to v2.1.0 + +- [changed] Internal changes to read version control info more efficiently [#6754] +- [fixed] Fixed NoSuchMethodError when getting process info on Android 13 on some devices [#6720] +- [changed] Updated `firebase-sessions` dependency to v2.1.0 - [changed] Add warning for known issue [b/328687152](https://issuetracker.google.com/328687152) [#6755] - [changed] Updated datastore dependency to v1.1.3 to fix [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8) [#6688] - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.1 -* [changed] Updated `firebase-sessions` dependency to v2.0.9 +- [changed] Updated `firebase-sessions` dependency to v2.0.9 ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.4.0 -* [feature] Added an overload for `recordException` that allows logging additional custom keys to - the non fatal event [#3551] +- [feature] Added an overload for `recordException` that allows logging additional custom keys to + the non fatal event [#3551] ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.3.0 -* [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` extension. -* [fixed] Execute failure listener outside the main thread [#6535] +- [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` extension. +- [fixed] Execute failure listener outside the main thread [#6535] ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.2.1 -* [changed] Updated protobuf dependency to `3.25.5` to fix - [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). +- [changed] Updated protobuf dependency to `3.25.5` to fix + [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.2.0 -* [fixed] Improved data consistency for rapid user actions. -* [fixed] Fixed exception propagation in the case of no default uncaught exception handler. -* [changed] Internal changes to improve startup time. -* [changed] Internal changes to the way background tasks are scheduled. -* [changed] Migrated SDK to use standard Firebase executors. + +- [fixed] Improved data consistency for rapid user actions. +- [fixed] Fixed exception propagation in the case of no default uncaught exception handler. +- [changed] Internal changes to improve startup time. +- [changed] Internal changes to the way background tasks are scheduled. +- [changed] Migrated SDK to use standard Firebase executors. # 19.1.0 -* [feature] Added the `isCrashlyticsCollectionEnabled` API to check if Crashlytics collection is + +- [feature] Added the `isCrashlyticsCollectionEnabled` API to check if Crashlytics collection is enabled. (GitHub [#5919](https://github.com/firebase/firebase-android-sdk/issues/5919){: .external}) -* [fixed] Ensure that on-demand fatal events are never processed on the main thread. (GitHub +- [fixed] Ensure that on-demand fatal events are never processed on the main thread. (GitHub [#4345](https://github.com/firebase/firebase-android-sdk/issues/4345){: .external}) -* [changed] Internal changes to the way session IDs are generated. - +- [changed] Internal changes to the way session IDs are generated. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.3 -* [changed] Update the internal file system to handle long file names. +- [changed] Update the internal file system to handle long file names. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.2 -* [changed] Changing caught exception type to fail safely on any exception type. +- [changed] Changing caught exception type to fail safely on any exception type. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.1 -* [changed] Improve cold initialization time. -* [fixed] Fixed version compatibility issues with other Firebase libraries. +- [changed] Improve cold initialization time. +- [fixed] Fixed version compatibility issues with other Firebase libraries. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 19.0.0 -* [fixed] Force validation or rotation of FIDs. -* [fixed] Added keep rule for shrinkage of Crashlytics build resources in strict mode. +- [fixed] Force validation or rotation of FIDs. +- [fixed] Added keep rule for shrinkage of Crashlytics build resources in strict mode. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.3 -* [feature] Updated `firebase-sessions` dependency. +- [feature] Updated `firebase-sessions` dependency. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.2 -* [changed] Bump internal dependencies. +- [changed] Bump internal dependencies. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.1 -* [feature] Updated `firebase-sessions` dependency for internal improvements +- [feature] Updated `firebase-sessions` dependency for internal improvements ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.6.0 -* [changed] Include more details about app processes in reports. -* [feature] Updated `firebase-sessions` dependency for more accurate sessions on multi-process apps. -* [changed] Added support for [crashlytics] to report information from [remote_config]. + +- [changed] Include more details about app processes in reports. +- [feature] Updated `firebase-sessions` dependency for more accurate sessions on multi-process apps. +- [changed] Added support for [crashlytics] to report information from [remote_config]. # 18.5.1 -* [fixed] Internal improvement to fix compatibility with Flutter and Unity SDKs. Github - [#10759](https://github.com/firebase/flutterfire/issues/10759) +- [fixed] Internal improvement to fix compatibility with Flutter and Unity SDKs. Github + [#10759](https://github.com/firebase/flutterfire/issues/10759) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.5.0 -* [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-crashlytics-ktx` + +- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-crashlytics-ktx` to `com.google.firebase:firebase-crashlytics` under the `com.google.firebase.crashlytics` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -* [deprecated] All the APIs from `com.google.firebase:firebase-crashlytics-ktx` have been added to +- [deprecated] All the APIs from `com.google.firebase:firebase-crashlytics-ktx` have been added to `com.google.firebase:firebase-crashlytics` under the `com.google.firebase.crashlytics` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-crashlytics-ktx` are now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.4.3 -* [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. - [#5337] +- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. + [#5337] ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.4.2 -* [feature] Expanded `firebase-sessions` library integration to work with NDK crashes and ANRs. -* [changed] Improved reliability when reporting memory usage. +- [feature] Expanded `firebase-sessions` library integration to work with NDK crashes and ANRs. +- [changed] Improved reliability when reporting memory usage. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.4.1 -* [changed] Updated `firebase-sessions` dependency to v1.0.2 + +- [changed] Updated `firebase-sessions` dependency to v1.0.2 # 18.4.0 -* [feature] Integrated with Firebase sessions library to enable upcoming features related to - session-based crash metrics. +- [feature] Integrated with Firebase sessions library to enable upcoming features related to + session-based crash metrics. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.7 -* [feature] Added collection of version control information generated by the Android Gradle plugin - (AGP). +- [feature] Added collection of version control information generated by the Android Gradle plugin + (AGP). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.6 -* [feature] Added support for upcoming [crashlytics] features to report GWP-ASan crashes on + +- [feature] Added support for upcoming [crashlytics] features to report GWP-ASan crashes on supported API levels. (GitHub [#4721](https://github.com/firebase/firebase-android-sdk/pull/4721){: .external}) -* [changed] Improved crash reporting reliability for crashes that occur early in the app's +- [changed] Improved crash reporting reliability for crashes that occur early in the app's lifecycle. (GitHub [#4608](https://github.com/firebase/firebase-android-sdk/pull/4608){: .external}, [#4786](https://github.com/firebase/firebase-android-sdk/pull/4786){: .external}) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.5 -* [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing - a nondeterministic crash on startup. +- [fixed] Updated `firebase-common` to its latest version (v20.3.0) to fix an issue that was causing + a nondeterministic crash on startup. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.4 + -* [changed] Improved crash reporting reliability for crashes that occur early in the app's +- [changed] Improved crash reporting reliability for crashes that occur early in the app's lifecycle. -* [changed] Added improved support for capturing `BuildId`s for native ANRs on older Android +- [changed] Added improved support for capturing `BuildId`s for native ANRs on older Android versions. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.3 -* [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.3. +- [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.3. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.2 -* [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.2. +- [unchanged] Updated to accommodate the release of the updated `firebase-crashlytics-ndk` v18.3.2. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.1 -* [fixed] Fixed an [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: - .external} in v18.3.0 that caused a `NoClassDefFoundError` in specific cases. +- [fixed] Fixed an [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: + .external} in v18.3.0 that caused a `NoClassDefFoundError` in specific cases. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.3.0 + Warning: We're aware of an [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: .external} in this version of the [crashlytics] Android SDK.
**We strongly recommend using the latest version of the SDK (v18.3.1+ or [bom] v31.0.1+).** -* [changed] Improved reporting for crashes that occur early in the app's lifecycle. After updating +- [changed] Improved reporting for crashes that occur early in the app's lifecycle. After updating to this version, you might notice a sudden _increase_ in the number of crashes that are reported for your app. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has the following additional updates: -* [feature] Firebase now supports Kotlin coroutines. With this release, we added +- [feature] Firebase now supports Kotlin coroutines. With this release, we added [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} to `firebase-crashlytics-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. # 18.2.13 -* [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.12 -* [changed] Internal changes to avoid accessing device-specific information. +- [changed] Internal changes to avoid accessing device-specific information. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.11 -* [changed] Improved crash reporting reliability for multi-process apps on Android 28 and above. +- [changed] Improved crash reporting reliability for multi-process apps on Android 28 and above. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.10 -* [fixed] Fixed a bug that could prevent unhandled exceptions from being propagated to the default + +- [fixed] Fixed a bug that could prevent unhandled exceptions from being propagated to the default handler when the network is unavailable. -* [changed] Internal changes to support on-demand fatal crash reporting for Flutter apps. -* [fixed] Fixed a bug that prevented [crashlytics] from initializing on some devices in some cases. +- [changed] Internal changes to support on-demand fatal crash reporting for Flutter apps. +- [fixed] Fixed a bug that prevented [crashlytics] from initializing on some devices in some cases. (#3269) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.9 -* [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and + +- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release entry. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.8 -* [changed] Updated to the latest version of the `firebase-datatransport` library. +- [changed] Updated to the latest version of the `firebase-datatransport` library. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.7 -* [changed] Improved runtime efficiency of the + +- [changed] Improved runtime efficiency of the [`setCustomKey` functions](/docs/crashlytics/customize-crash-reports?platform=android#add-keys), significantly reducing the number of `Task` objects and disk writes when keys are updated frequently. (#3254) -* [fixed] Fixed a StrictMode `DiskReadViolation`. (#3265) - +- [fixed] Fixed a StrictMode `DiskReadViolation`. (#3265) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.6 -* [changed] Internal changes to support future improvements to Flutter crash reporting. +- [changed] Internal changes to support future improvements to Flutter crash reporting. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.5 -* [fixed] Fixed a bug that prevented some [crashlytics] session files from being removed after the + +- [fixed] Fixed a bug that prevented some [crashlytics] session files from being removed after the session ended. All session-specific files are now properly cleaned up. -* [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation +- [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation and removal of intermediate [crashlytics] files. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.4 -* [changed] Internal changes to support ANR collection and their upcoming display in the console. +- [changed] Internal changes to support ANR collection and their upcoming display in the console. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.3 -* [fixed] Fixed a race condition that prevented some launch-time crashes from being reported to - Crashlytics. -* [changed] Internal changes to support upcoming Unity crash reporting improvements. +- [fixed] Fixed a race condition that prevented some launch-time crashes from being reported to + Crashlytics. +- [changed] Internal changes to support upcoming Unity crash reporting improvements. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.1 -* [fixed] Fixed a `ConcurrentModificationException` that could be logged to logcat when setting - multiple custom key/values in rapid succession. +- [fixed] Fixed a `ConcurrentModificationException` that could be logged to logcat when setting + multiple custom key/values in rapid succession. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.2.0 -* [changed] Internal changes. +- [changed] Internal changes. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.1.0 -* [changed] Internal changes to support upcoming Unity features. +- [changed] Internal changes to support upcoming Unity features. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.0.1 -* [fixed] Fixed a bug that could prevent proper removal of [crashlytics] NDK crash report files when - crash reporting is disabled, resulting in excessive disk use. +- [fixed] Fixed a bug that could prevent proper removal of [crashlytics] NDK crash report files when + crash reporting is disabled, resulting in excessive disk use. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 18.0.0 -* [changed] Removed call to + +- [changed] Removed call to [`FirebaseInstallations#getId()`]() when [automatic data collection](/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting) is disabled for [crashlytics]. [crashlytics] no longer makes any network calls when reporting is disabled. -* [changed] Internal changes to support dynamic feature modules. - +- [changed] Internal changes to support dynamic feature modules. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.4.1 -* [changed] Improved rooted device detection. (#2515) -* [fixed] Fix an uncaught IllegalStateExeception that could be thrown if [crashlytics] is unable to + +- [changed] Improved rooted device detection. (#2515) +- [fixed] Fix an uncaught IllegalStateExeception that could be thrown if [crashlytics] is unable to register a receiver that collects battery state information. If registration fails due to the app already having registered too many receivers, [crashlytics] will report default values for the battery state rather than crashing. (#2504) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.4.0 -* [feature] Added the + +- [feature] Added the [`setCustomKeys`](/docs/reference/android/com/google/firebase/crashlytics/CustomKeysAndValues) API to allow bulk logging of custom keys and values. ([Github PR #2443](//github.com/firebase/firebase-android-sdk/pull/2443){: .external}) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.3.1 -* [changed] Removed OkHttp dependency to eliminate conflicts with apps and SDKs using incompatible - versions. +- [changed] Removed OkHttp dependency to eliminate conflicts with apps and SDKs using incompatible + versions. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.3.0 -* [changed] Clarified debug logs for crash reports enqueued to be sent via the + +- [changed] Clarified debug logs for crash reports enqueued to be sent via the `firebase-datatransport` library. -* [fixed] Addressed an issue which could cause a `RejectedExecutionException` in rare cases. +- [fixed] Addressed an issue which could cause a `RejectedExecutionException` in rare cases. ([Github Issue #2013](//github.com/firebase/firebase-android-sdk/issues/2013){: .external}) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.2.2 -* [fixed] Fixed crash that can occur when using a built-in resource as the app launcher icon. + +- [fixed] Fixed crash that can occur when using a built-in resource as the app launcher icon. ([Github Issue #1935](//github.com/firebase/firebase-android-sdk/issues/1935){: .external}) -* [fixed] Fixed a bug preventing crash reports from being sent in some cases when an app is using +- [fixed] Fixed a bug preventing crash reports from being sent in some cases when an app is using [crashlytics] on multiple processes. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.2.1 -* [fixed] Improved handling of asynchronous tasks that need to wait for completion on the main + +- [fixed] Improved handling of asynchronous tasks that need to wait for completion on the main thread. ([Github PR #1739](//github.com/firebase/firebase-android-sdk/pull/1739){: .external}) -* [changed] Added an overload to the `setCrashlyticsCollectionEnabled` API to allow for passing +- [changed] Added an overload to the `setCrashlyticsCollectionEnabled` API to allow for passing `null` to clear any previously set value. ([Github PR #1434](//github.com/firebase/firebase-android-sdk/pull/1434){: .external}) -* [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an +- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an indirect dependency via the Firebase Instance ID SDK. ([Github PR #1760](//github.com/firebase/firebase-android-sdk/pull/1760){: .external}) {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.1.1 -* [changed] To improve the reliability of submitting crash uploads on poor networks, changed the + +- [changed] To improve the reliability of submitting crash uploads on poor networks, changed the Transport SDK to retry connection errors ([Github Issue #1705](//github.com/firebase/firebase-android-sdk/issues/1705){: .external}) and increased the number of retries before deleting events ([Github Issue #1708](//github.com/firebase/firebase-android-sdk/issues/1708){: .external}). - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-crashlytics` library. The Kotlin extensions library has no additional updates. # 17.1.0 -* [fixed] Updated [crashlytics] integration with [firebase_analytics] to include native crashes in + +- [fixed] Updated [crashlytics] integration with [firebase_analytics] to include native crashes in crash-free users counts. -* [fixed] Removed a harmless, yet unexpected `FileNotFoundException` log output that printed when an +- [fixed] Removed a harmless, yet unexpected `FileNotFoundException` log output that printed when an optional file is unavailable. ([Github Issue #1559](//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614){: .external}) - ## Kotlin -* [feature] The [firebase_crashlytics] Android library with Kotlin extensions is now available. The + +- [feature] The [firebase_crashlytics] Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base `firebase-crashlytics` library. To learn more, visit the [[crashlytics] KTX documentation](/docs/reference/kotlin/com/google/firebase/crashlytics/ktx/package-summary). # 17.0.1 -* [fixed] Fixed an issue causing a `SQLiteException` when changing versions of [crashlytics]. + +- [fixed] Fixed an issue causing a `SQLiteException` when changing versions of [crashlytics]. ([Github Issue #1531](https://github.com/firebase/firebase-android-sdk/issues/1531){: .external}) -* [fixed] Improved reliability of sending reports at crash time on Android API level 28+. +- [fixed] Improved reliability of sending reports at crash time on Android API level 28+. # 17.0.0 -* [changed] The [firebase_crashlytics] SDK is now generally available. -* [fixed] Fixed an issue that could cause apps to crash if a crash report payload is too large + +- [changed] The [firebase_crashlytics] SDK is now generally available. +- [fixed] Fixed an issue that could cause apps to crash if a crash report payload is too large (rare). -* [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step +- [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, which is a step towards a direct dependency on the [firebase_installations] service in a future release. # 17.0.0-beta04 -* [changed] Imposed a limit on the maximum crash report payload size. -* [fixed] Reduced crash report payload size. + +- [changed] Imposed a limit on the maximum crash report payload size. +- [fixed] Reduced crash report payload size. # 17.0.0-beta03 -* [fixed] Fixed internal bugs to improve crash analysis and grouping. -* [changed] Improved compatibility with Google Analytics. For best performance, make sure you're + +- [fixed] Fixed internal bugs to improve crash analysis and grouping. +- [changed] Improved compatibility with Google Analytics. For best performance, make sure you're using the latest versions of the [firebase_crashlytics] SDK and the Firebase SDK for Google Analytics. -* [changed] Updated remaining [crashlytics] backend API calls to prepare for Fabric sunset. +- [changed] Updated remaining [crashlytics] backend API calls to prepare for Fabric sunset. # 17.0.0-beta02 -* [changed] Removed superfluous `D/FirebaseCrashlytics` prefix from logs. + +- [changed] Removed superfluous `D/FirebaseCrashlytics` prefix from logs. ([#1202](https://github.com/firebase/firebase-android-sdk/issues/1202)) -* [changed] Updated [crashlytics] backend API calls in preparation for Fabric sunset. -* [changed] Upgraded [firebase_analytics] integration to improve crash-free users accuracy. For +- [changed] Updated [crashlytics] backend API calls in preparation for Fabric sunset. +- [changed] Upgraded [firebase_analytics] integration to improve crash-free users accuracy. For improved performance, we recommend that you upgrade to the latest version of the Firebase SDK for [firebase_analytics] with this version of [firebase_crashlytics]. # 17.0.0-beta01 + This release for [firebase_crashlytics] includes the initial beta release of the [firebase_crashlytics] SDK. @@ -622,12 +686,11 @@ name change. The following release notes describe changes in the new SDK. -* [changed] Replaced static methods with new instance methods that are more consistent with other +- [changed] Replaced static methods with new instance methods that are more consistent with other Firebase SDKs and more intuitive to use. The new APIs give your users more control over how you collect their data. -* [removed] Removed the Fabric [crashlytics] API key. Now, [crashlytics] will always use the +- [removed] Removed the Fabric [crashlytics] API key. Now, [crashlytics] will always use the `google-services.json` file to associate your app with your Firebase project. If you linked your app from Fabric, remove the Fabric API key from your `AndroidManifest.xml` file. -* [removed] The `fabric.properties` and `crashlytics.properties` files are no longer supported. +- [removed] The `fabric.properties` and `crashlytics.properties` files are no longer supported. Remove them from your app. - diff --git a/firebase-dataconnect/CHANGELOG.md b/firebase-dataconnect/CHANGELOG.md index 3df8718de0e..7f64bb4d9e8 100644 --- a/firebase-dataconnect/CHANGELOG.md +++ b/firebase-dataconnect/CHANGELOG.md @@ -1,99 +1,109 @@ # Unreleased - # 17.1.0 -* [fixed] Addressed minor reference documentation issues (#7399) -* [changed] Added classes `EnumValue` and `EnumValueSerializer`. These classes are identical to + +- [fixed] Addressed minor reference documentation issues (#7399) +- [changed] Added classes `EnumValue` and `EnumValueSerializer`. These classes are identical to those produced by the Data Connect code generator; however, a future version of the code generator will start using these classes from the SDK rather than generating them. ([#7153](https://github.com/firebase/firebase-android-sdk/pull/7153)) # 17.0.1 -* [changed] Bumped internal dependencies. -* [changed] Ignore unknown fields in response data instead of throwing a + +- [changed] Bumped internal dependencies. +- [changed] Ignore unknown fields in response data instead of throwing a `DataConnectOperationException` with message "decoding data from the server's response failed: An unknown field for index -3" ([#7314](https://github.com/firebase/firebase-android-sdk/pull/7314)) # 17.0.0 -* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -* [changed] Removed superfluous and noisy debug logging of operation variables. + +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] Removed superfluous and noisy debug logging of operation variables. # 16.0.3 -* [fixed] Fixed occasional `NullPointerException` when registering with FirebaseAuth, leading to + +- [fixed] Fixed occasional `NullPointerException` when registering with FirebaseAuth, leading to erroneous UNAUTHENTICATED exceptions. ([#7001](https://github.com/firebase/firebase-android-sdk/pull/7001)) # 16.0.2 -* [changed] Improved code robustness related to state management in `FirebaseDataConnect` objects. + +- [changed] Improved code robustness related to state management in `FirebaseDataConnect` objects. ([#6861](https://github.com/firebase/firebase-android-sdk/pull/6861)) # 16.0.1 -* [changed] Internal improvements. + +- [changed] Internal improvements. # 16.0.0 -* [changed] DataConnectOperationException added, enabling support for partial errors; that is, any + +- [changed] DataConnectOperationException added, enabling support for partial errors; that is, any data that was received and/or was able to be decoded is now available via the "response" property of the exception thrown when a query or mutation is executed. ([#6794](https://github.com/firebase/firebase-android-sdk/pull/6794)) # 16.0.0-beta05 -* [changed] Changed gRPC proto package to v1 (was v1beta). + +- [changed] Changed gRPC proto package to v1 (was v1beta). ([#6729](https://github.com/firebase/firebase-android-sdk/pull/6729)) # 16.0.0-beta04 -* [changed] `FirebaseDataConnect.logLevel` type changed from `LogLevel` to + +- [changed] `FirebaseDataConnect.logLevel` type changed from `LogLevel` to `MutableStateFlow`. This enables apps to "collect" the flow to, for example, update a UI component when the log level changes. ([#6586](https://github.com/firebase/firebase-android-sdk/pull/6586)) # 16.0.0-beta03 -* [changed] Requires Data Connect emulator version 1.6.1 or later for code generation. -* [feature] QueryRef and MutationRef gain methods copy(), withDataDeserializer(), and + +- [changed] Requires Data Connect emulator version 1.6.1 or later for code generation. +- [feature] QueryRef and MutationRef gain methods copy(), withDataDeserializer(), and withVariablesSerializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -* [feature] GeneratedConnector gains methods copy(), operations(), queries(), and mutations(). +- [feature] GeneratedConnector gains methods copy(), operations(), queries(), and mutations(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -* [feature] GeneratedQuery and GeneratedMutation gain methods copy(), withVariablesSerializer(), and +- [feature] GeneratedQuery and GeneratedMutation gain methods copy(), withVariablesSerializer(), and withDataDeserializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -* [feature] GeneratedConnector, GeneratedQuery, and GeneratedMutation now must implement equals() to +- [feature] GeneratedConnector, GeneratedQuery, and GeneratedMutation now must implement equals() to be a _logical_ comparsion, rather than just checking for _referencial_ equality using the `===` operator. ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -* [feature] ExperimentalFirebaseDataConnect annotation added, and some APIs have been annotated with +- [feature] ExperimentalFirebaseDataConnect annotation added, and some APIs have been annotated with it, requiring applications that make use of these experimental APIs to opt-in using `@OptIn(ExperimentalFirebaseDataConnect::class)` to suppress warnings or errors related to using these experimental APIs. ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) and ([#6433](https://github.com/firebase/firebase-android-sdk/pull/6433)) -* [changed] Replaced java.util.Date with com.google.firebase.dataconnect.LocalDate. +- [changed] Replaced java.util.Date with com.google.firebase.dataconnect.LocalDate. ([#6434](https://github.com/firebase/firebase-android-sdk/pull/6434)) -* [changed] `DateSerializer` removed, as it is superceded by `LocalDateSerializer`. As of Data +- [changed] `DateSerializer` removed, as it is superceded by `LocalDateSerializer`. As of Data Connect emulator version 1.7.0, the generated Kotlin code uses `com.google.firebase.dataconnect.LocalDate` instead of `java.util.Date`. Therefore, this version of the SDK must be paired with code generated by version 1.7.0 (or later) of the Data Connect emulator. ([#6513](https://github.com/firebase/firebase-android-sdk/pull/6513)) -* [feature] JavaTimeLocalDateSerializer and KotlinxDatetimeLocalDateSerializer added, to enable +- [feature] JavaTimeLocalDateSerializer and KotlinxDatetimeLocalDateSerializer added, to enable using the standard "local date" classes `java.time.LocalDate` and/or `kotlinx.datetime.LocalDate` instead of the bespoke `com.google.firebase.dataconnect.LocalDate` class for `Date` GraphQL fields and variables. ([#6519](https://github.com/firebase/firebase-android-sdk/pull/6519)) # 16.0.0-beta02 -* [changed] Updated protobuf dependency to `3.25.5` to fix + +- [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). # 16.0.0-beta01 -* [feature] Initial release of the Data Connect SDK (public preview). Learn how to + +- [feature] Initial release of the Data Connect SDK (public preview). Learn how to [get started](https://firebase.google.com/docs/data-connect/android-sdk) with the SDK in your app. -* [feature] Added App Check support. +- [feature] Added App Check support. ([#6176](https://github.com/firebase/firebase-android-sdk/pull/6176)) -* [feature] Added `AnyValue` to support the `Any` custom GraphQL scalar type. +- [feature] Added `AnyValue` to support the `Any` custom GraphQL scalar type. ([#6285](https://github.com/firebase/firebase-android-sdk/pull/6285)) -* [feature] Added `OrderDirection` enum support. +- [feature] Added `OrderDirection` enum support. ([#6307](https://github.com/firebase/firebase-android-sdk/pull/6307)) -* [feature] Added ability to specify `SerializersModule` when serializing. +- [feature] Added ability to specify `SerializersModule` when serializing. ([#6297](https://github.com/firebase/firebase-android-sdk/pull/6297)) -* [feature] Added `CallerSdkType`, which enables tracking of the generated SDK usage. +- [feature] Added `CallerSdkType`, which enables tracking of the generated SDK usage. ([#6298](https://github.com/firebase/firebase-android-sdk/pull/6298) and [#6179](https://github.com/firebase/firebase-android-sdk/pull/6179)) -* [changed] Changed gRPC proto package to v1beta (was v1alpha). +- [changed] Changed gRPC proto package to v1beta (was v1alpha). ([#6299](https://github.com/firebase/firebase-android-sdk/pull/6299)) -* [changed] Added `equals` and `hashCode` methods to `GeneratedConnector`. +- [changed] Added `equals` and `hashCode` methods to `GeneratedConnector`. ([#6177](https://github.com/firebase/firebase-android-sdk/pull/6177)) - diff --git a/firebase-firestore/CHANGELOG.md b/firebase-firestore/CHANGELOG.md index 9e32bc7b61b..5418475a1a5 100644 --- a/firebase-firestore/CHANGELOG.md +++ b/firebase-firestore/CHANGELOG.md @@ -1,548 +1,601 @@ # Unreleased - # 26.0.2 -* [changed] Improve query performance in large result sets by replacing the deprecated AsyncTask + +- [changed] Improve query performance in large result sets by replacing the deprecated AsyncTask thread pool with a self-managed thread pool. [#7376](//github.com/firebase/firebase-android-sdk/issues/7376) -* [changed] Improve query performance via internal memoization of calculated document data. +- [changed] Improve query performance via internal memoization of calculated document data. [#7370](//github.com/firebase/firebase-android-sdk/issues/7370) -* [changed] Improve query performance by avoiding excessive Comparator instance creation. +- [changed] Improve query performance by avoiding excessive Comparator instance creation. [#7388](//github.com/firebase/firebase-android-sdk/pull/7388) -* [changed] Improve query performance by using an unsorted HashMap instead of a sorted TreeMap. +- [changed] Improve query performance by using an unsorted HashMap instead of a sorted TreeMap. [#7389](//github.com/firebase/firebase-android-sdk/pull/7389) -- [changed] Add `java.time.Instant` support to `DocumentSnapshot.toObject()`, + +* [changed] Add `java.time.Instant` support to `DocumentSnapshot.toObject()`, `DocumentReference.set()`, `DocumentReference.update()`, and similar. [#6235](//github.com/firebase/firebase-android-sdk/pull/6235) # 26.0.1 -* [changed] Bumped internal dependencies. -* [changed] Improve the performance of queries in collections that contain many deleted documents. + +- [changed] Bumped internal dependencies. +- [changed] Improve the performance of queries in collections that contain many deleted documents. [#7295](//github.com/firebase/firebase-android-sdk/issues/7295) # 26.0.0 -* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -* [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and + +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [removed] **Breaking Change**: Stopped releasing the deprecated Kotlin extensions (KTX) module and removed it from the Firebase Android BoM. Instead, use the KTX APIs from the main module. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration). -* [fixed] Further improved performance of UTF-8 string ordering logic, which had degraded in v25.1.2 +- [fixed] Further improved performance of UTF-8 string ordering logic, which had degraded in v25.1.2 and received some improvements in v25.1.3. [#7053](//github.com/firebase/firebase-android-sdk/issues/7053) -* [changed] Use the `compare()` methods defined in standard `Integer`, `Long`, and `Character` +- [changed] Use the `compare()` methods defined in standard `Integer`, `Long`, and `Character` classes instead of Firestore's bespoke implementations. [#7109](//github.com/firebase/firebase-android-sdk/pull/7109) # 25.1.4 -* [fixed] Fixed the `null` value handling in `whereNotEqualTo` and `whereNotIn` filters. -* [fixed] Catch exception when stream is already cancelled during close. - [#6894](//github.com/firebase/firebase-android-sdk/pull/6894) +- [fixed] Fixed the `null` value handling in `whereNotEqualTo` and `whereNotIn` filters. +- [fixed] Catch exception when stream is already cancelled during close. + [#6894](//github.com/firebase/firebase-android-sdk/pull/6894) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.3 -* [fixed] Use lazy encoding in UTF-8 encoded byte comparison for strings to solve performance - issues. [#6706](//github.com/firebase/firebase-android-sdk/pull/6706) -* [changed] Updated `protolite-well-known-types` dependency to `18.0.1`. [#6716] +- [fixed] Use lazy encoding in UTF-8 encoded byte comparison for strings to solve performance + issues. [#6706](//github.com/firebase/firebase-android-sdk/pull/6706) +- [changed] Updated `protolite-well-known-types` dependency to `18.0.1`. [#6716] ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.2 -* [fixed] Fixed a server and sdk mismatch in unicode string sorting. - [#6615](//github.com/firebase/firebase-android-sdk/pull/6615) +- [fixed] Fixed a server and sdk mismatch in unicode string sorting. + [#6615](//github.com/firebase/firebase-android-sdk/pull/6615) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.1 -* [changed] Update Firestore proto definitions. + +- [changed] Update Firestore proto definitions. [#6369](//github.com/firebase/firebase-android-sdk/pull/6369) -* [changed] Updated protobuf dependency to `3.25.5` to fix +- [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.1.0 -* [feature] Add support for the VectorValue type. - [#6154](//github.com/firebase/firebase-android-sdk/pull/6154) +- [feature] Add support for the VectorValue type. + [#6154](//github.com/firebase/firebase-android-sdk/pull/6154) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 25.0.0 -* [feature] Enable queries with range & inequality filters on multiple fields. + +- [feature] Enable queries with range & inequality filters on multiple fields. [#5729](//github.com/firebase/firebase-android-sdk/pull/5729) -* [changed] Internal improvements. -* [feature] Support conversion between `java.time.Instant` and `Timestamp` +- [changed] Internal improvements. +- [feature] Support conversion between `java.time.Instant` and `Timestamp` [#5853](//github.com/firebase/firebase-android-sdk/pull/5853) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.11.0 -* [feature] Enable snapshot listener option to retrieve data from local cache only. - [#5690](//github.com/firebase/firebase-android-sdk/pull/5690) +- [feature] Enable snapshot listener option to retrieve data from local cache only. + [#5690](//github.com/firebase/firebase-android-sdk/pull/5690) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.3 -* [fixed] Fixed the missing handling setter annotations bug introduced by + +- [fixed] Fixed the missing handling setter annotations bug introduced by [#5626](//github.com/firebase/firebase-android-sdk/pull/5626). [#5706](//github.com/firebase/firebase-android-sdk/pull/5706) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.2 -* [changed] Internal test improvements. -* [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's corresponding bridge - methods. [#5626](//github.com/firebase/firebase-android-sdk/pull/5626) +- [changed] Internal test improvements. +- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's corresponding bridge + methods. [#5626](//github.com/firebase/firebase-android-sdk/pull/5626) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.1 -* [fixed] Fixed an issue caused by calling mutation on immutable map object. + +- [fixed] Fixed an issue caused by calling mutation on immutable map object. [#5573](//github.com/firebase/firebase-android-sdk/pull/5573) -* [fixed] Fixed an issue in the local cache synchronization logic where all locally-cached documents +- [fixed] Fixed an issue in the local cache synchronization logic where all locally-cached documents that matched a resumed query would be unnecessarily re-downloaded; with the fix it now only downloads the documents that are known to be out-of-sync. [#5506](//github.com/firebase/firebase-android-sdk/pull/5506) -* [fixed] Fixed an issue where GC runs into a infinite loop in a certain case. +- [fixed] Fixed an issue where GC runs into a infinite loop in a certain case. [#5417](https://github.com/firebase/firebase-android-sdk/issues/5417) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.10.0 -* [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal state when comparing + +- [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal state when comparing snapshots. # 24.9.1 -* [feature] Expose Sum/Average aggregate query support in API. - [#5217](//github.com/firebase/firebase-android-sdk/pull/5217) +- [feature] Expose Sum/Average aggregate query support in API. + [#5217](//github.com/firebase/firebase-android-sdk/pull/5217) ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.9.0 -* [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-firestore-ktx` to + +- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-firestore-ktx` to `com.google.firebase:firebase-firestore` under the `com.google.firebase.firestore` package. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) -* [deprecated] All the APIs from `com.google.firebase:firebase-firestore-ktx` have been added to +- [deprecated] All the APIs from `com.google.firebase:firebase-firestore-ktx` have been added to `com.google.firebase:firebase-firestore` under the `com.google.firebase.firestore` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-firestore-ktx` are now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.8.1 -* [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. - [#5337] +- [fixed] Disabled `GradleMetadataPublishing` to fix breakage of the Kotlin extensions library. + [#5337] ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.8.0 -* [feature] Added the option to allow the SDK to create cache indexes automatically to improve query + +- [feature] Added the option to allow the SDK to create cache indexes automatically to improve query execution locally. See [`db.getPersistentCacheIndexManager().enableIndexAutoCreation()`]() ([GitHub [#4987](//github.com/firebase/firebase-android-sdk/pull/4987){: .external}). - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.7.1 -* [fixed] Implement equals method on Filter class. + +- [fixed] Implement equals method on Filter class. [#5210](//github.com/firebase/firebase-android-sdk/issues/5210) # 24.7.0 -* [feature] Expose MultiDb support in API. + +- [feature] Expose MultiDb support in API. [#4015](//github.com/firebase/firebase-android-sdk/issues/4015) -* [fixed] Fixed a thread interference issue that may lead to a ConcurrentModificationException. +- [fixed] Fixed a thread interference issue that may lead to a ConcurrentModificationException. (GitHub [#5091](//github.com/firebase/firebase-android-sdk/issues/5091){: .external}) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.6.1 -* [feature] Implemented an optimization in the local cache synchronization logic that reduces the + +- [feature] Implemented an optimization in the local cache synchronization logic that reduces the number of billed document reads when documents were deleted on the server while the client was not actively listening to the query (e.g. while the client was offline). (GitHub [#4982](//github.com/firebase/firebase-android-sdk/pull/4982){: .external}) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.6.0 -* [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub + +- [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) -* [feature] Added new +- [feature] Added new [cache config APIs]() to customize the SDK's cache setup. -* [feature] Added +- [feature] Added [LRU garbage collector](/docs/reference/android/com/google/firebase/firestore/MemoryLruGcSettings) to the SDK's memory cache. -* [deprecated] Deprecated the following APIs from +- [deprecated] Deprecated the following APIs from [`FirebaseFirestoreSettings`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings):
`isPersistenceEnabled` and `getCacheSizeBytes`. -* [deprecated] Deprecated the following APIs from +- [deprecated] Deprecated the following APIs from [`FirebaseFirestoreSettings.Builder`]():
`isPersistenceEnabled`, `getCacheSizeBytes`, `setPersistenceEnabled`, and `setCacheSizeBytes`. -* [changed] Internal changes to ensure alignment with other SDK releases. - +- [changed] Internal changes to ensure alignment with other SDK releases. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.5.0 -* [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub - [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) +- [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub + [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) ## Kotlin -* [feature] Added + +- [feature] Added [`Query.dataObjects()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects) and [`DocumentReference.dataObjects()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#dataObjects_1) Kotlin Flows to listen for realtime updates and convert its values to a specific type. # 24.4.5 -* [feature] Added support for disjunctions in queries (`OR` queries). +- [feature] Added support for disjunctions in queries (`OR` queries). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.4 -* [changed] Relaxed certain query validations performed by the SDK - ([GitHub Issue #4231](//github.com/firebase/firebase-android-sdk/issues/4231)). -* [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, and protobuf-java-util to 3.21.11. +- [changed] Relaxed certain query validations performed by the SDK + ([GitHub Issue #4231](//github.com/firebase/firebase-android-sdk/issues/4231)). +- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, and protobuf-java-util to 3.21.11. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.3 -* [fixed] Fixed a potential high-memory usage issue. -* [fixed] Fixed an issue that stopped some performance optimization from being applied. +- [fixed] Fixed a potential high-memory usage issue. +- [fixed] Fixed an issue that stopped some performance optimization from being applied. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.2 -* [fixed] Fixed an issue that stopped some performance optimization from being applied. +- [fixed] Fixed an issue that stopped some performance optimization from being applied. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.1 -* [fixed] Fix `FAILED_PRECONDITION` when writing to a deleted document in a transaction. (#5871) -* [fixed] Fixed [firestore] failing to raise initial snapshot from an empty local cache result. - (#4207) -* [fixed] Removed invalid suggestions to use `GenericTypeIndicator` from error messages. (#222) -* [changed] Updated dependency of `io.grpc.*` to its latest version (v1.50.2). +- [fixed] Fix `FAILED_PRECONDITION` when writing to a deleted document in a transaction. (#5871) +- [fixed] Fixed [firestore] failing to raise initial snapshot from an empty local cache result. + (#4207) +- [fixed] Removed invalid suggestions to use `GenericTypeIndicator` from error messages. (#222) +- [changed] Updated dependency of `io.grpc.*` to its latest version (v1.50.2). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.4.0 -* [feature] Added + +- [feature] Added [`Query.count()`](), which fetches the number of documents in the result set without actually downloading the documents. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has the following additional updates: -* [feature] Firebase now supports Kotlin coroutines. With this release, we added +- [feature] Firebase now supports Kotlin coroutines. With this release, we added [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} to `firebase-firestore-ktx` as a transitive dependency, which exposes the `Task.await()` suspend function to convert a [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin coroutine. # 24.3.1 -* [changed] Updated dependency of `io.grpc.*` to its latest version (v1.48.1). +- [changed] Updated dependency of `io.grpc.*` to its latest version (v1.48.1). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. # 24.3.0 -* [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library also has the following additional updates: -* [feature] Added +- [feature] Added [`Query.snapshots()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots_1) and [`DocumentReference.snapshots()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots) Kotlin Flows to listen for realtime updates. # 24.2.2 -* [fixed] Fixed an issue in `waitForPendingWrites()` that could lead to a `NullPointerException`. +- [fixed] Fixed an issue in `waitForPendingWrites()` that could lead to a `NullPointerException`. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.2.1 -* [changed] Internal refactor and test improvements. +- [changed] Internal refactor and test improvements. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.2.0 -* [feature] Added customization support for - [`FirebaseFirestore.runTransaction`](). +- [feature] Added customization support for + [`FirebaseFirestore.runTransaction`](). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.1.2 -* [fixed] Fixed an issue where patching multiple fields shadows each other. (#3528). +- [fixed] Fixed an issue where patching multiple fields shadows each other. (#3528). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.1.1 -* [fixed] Fixed an issue in the beta version of the index engine that might cause [firestore] to - exclude document results for limit queries with local modifications. -* [changed] [firestore] can now serialize objects with `android.net.Uri`s. +- [fixed] Fixed an issue in the beta version of the index engine that might cause [firestore] to + exclude document results for limit queries with local modifications. +- [changed] [firestore] can now serialize objects with `android.net.Uri`s. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.1.0 -* [feature] Added beta support for indexed query execution. You can enable indexes by invoking + +- [feature] Added beta support for indexed query execution. You can enable indexes by invoking `FirebaseFirestore.setIndexConfiguration()` with the JSON index definition exported by the [firebase_cli]. Queries against the cache are executed using an index once the asynchronous index generation completes. -* [fixed] Fixed missing document fields issue with offline overlays. (#3528). - +- [fixed] Fixed missing document fields issue with offline overlays. (#3528). ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.0.2 -* [fixed] Fixed a [firebase_app_check] issue that caused [firestore] listeners to stop working and + +- [fixed] Fixed a [firebase_app_check] issue that caused [firestore] listeners to stop working and receive a `Permission Denied` error. This issue only occurred if the [app_check] expiration time was set to under an hour. -* [fixed] Fixed a potential problem during the shutdown of [firestore] that prevented the shutdown +- [fixed] Fixed a potential problem during the shutdown of [firestore] that prevented the shutdown from proceeding if a network connection was opened right before. -* [fixed] Fixed an NPE issue where mutations with multiple documents were not handled correctly +- [fixed] Fixed an NPE issue where mutations with multiple documents were not handled correctly during previous mutation acknowledgement. (#3490). -* [changed] Queries are now sent to the backend before the SDK starts local processing, which +- [changed] Queries are now sent to the backend before the SDK starts local processing, which reduces overall query latency. -* [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and +- [changed] Updated dependencies of `play-services-basement`, `play-services-base`, and `play-services-tasks` to their latest versions (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release entry. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.0.1 -* [changed] Optimized performance for offline usage. -* [changed] Optimized performance for queries with collections that contain subcollections. +- [changed] Optimized performance for offline usage. +- [changed] Optimized performance for queries with collections that contain subcollections. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 24.0.0 -* [changed] This SDK now requires devices and emulators to target API level 19 (KitKat) or higher + +- [changed] This SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use Android 4.4 or higher. This is due to an update in its gRPC dependency version and to align with requirements of other Firebase libraries. -* [feature] Added support for [firebase_app_check]. - +- [feature] Added support for [firebase_app_check]. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.4 -* [fixed] Fixed an issue where some fields were missed when copying in the - `FirebaseFirestoreSettings.Builder` copy constructor. +- [fixed] Fixed an issue where some fields were missed when copying in the + `FirebaseFirestoreSettings.Builder` copy constructor. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.3 -* [fixed] Fixed an issue that was causing failures when a data bundle with multi-byte Unicode - characters was loaded. +- [fixed] Fixed an issue that was causing failures when a data bundle with multi-byte Unicode + characters was loaded. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.2 -* [changed] Improved Firestore's network condition detection. +- [changed] Improved Firestore's network condition detection. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.1 -* [changed] The SDK now tries to immediately establish a connection to the backend when the app - enters the foreground. +- [changed] The SDK now tries to immediately establish a connection to the backend when the app + enters the foreground. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 23.0.0 -* [changed] Internal infrastructure improvements. -* [changed] Internal changes to support dynamic feature modules. +- [changed] Internal infrastructure improvements. +- [changed] Internal changes to support dynamic feature modules. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.1.2 -* [changed] Internal changes in preparation for future support of dynamic feature modules. +- [changed] Internal changes in preparation for future support of dynamic feature modules. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.1.1 -* [fixed] Fixed an issue that dropped the limit for queries loaded from [firestore] bundles that + +- [fixed] Fixed an issue that dropped the limit for queries loaded from [firestore] bundles that were generated by the NodeJS SDK. -* [fixed] Fixed a bug where local cache inconsistencies were unnecessarily being resolved, causing +- [fixed] Fixed a bug where local cache inconsistencies were unnecessarily being resolved, causing the `Task` objects returned from `get()` invocations to never complete. #2404 - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.1.0 -* [feature] Added support for [firestore] bundles via + +- [feature] Added support for [firestore] bundles via [`FirebaseFirestore.loadBundle()`]() and [`FirebaseFirestore.getNamedQuery()`](). Bundles contain pre-packaged data produced with the Firebase Admin Node.js SDK and can be used to populate the cache for [firestore] without the need to read documents from the backend. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.0.2 -* [changed] A write to a document that contains `FieldValue` transforms is no longer split into two + +- [changed] A write to a document that contains `FieldValue` transforms is no longer split into two separate operations. This reduces the number of writes that the backend performs and allows each `WriteBatch` to hold 500 writes regardless of how many `FieldValue` transformations are attached. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.0.1 -* [changed] Removed excess validation of null and NaN values in query filters. This more closely + +- [changed] Removed excess validation of null and NaN values in query filters. This more closely aligns the SDK with the [firestore] backend, which has always accepted null and NaN for all operators. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 22.0.0 -* [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. Any timestamp in a + +- [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. Any timestamp in a [firestore] document is now returned as a `Timestamp`. To convert `Timestamp` classes to `java.util.Date`, use [`Timestamp.toDate()`](). - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.7.1 -* [changed] Added new internal HTTP headers to the gRPC connection. +- [changed] Added new internal HTTP headers to the gRPC connection. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.7.0 -* [feature] Added + +- [feature] Added [`Query.whereNotIn()`](>) and [`Query.whereNotEqualTo()`]() @@ -554,373 +607,406 @@ Kotlin extensions library has no additional updates. specified value. Neither query operator finds documents where the specified field isn't present. -* [fixed] Fixed an issue that caused poor performance for queries that filtered results using nested - array values. +- [fixed] Fixed an issue that caused poor performance for queries that filtered results using nested + array values. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.6.0 -* [fixed] Removed a delay that may have prevented [firestore] from immediately reestablishing a + +- [fixed] Removed a delay that may have prevented [firestore] from immediately reestablishing a network connection if a connectivity change occurred while the app was in the background. -* [fixed] Fixed an issue that may have prevented the client from connecting to the backend +- [fixed] Fixed an issue that may have prevented the client from connecting to the backend immediately after a user signed in. -* [feature] Added support for connecting to the Firebase Emulator Suite via a new method, +- [feature] Added support for connecting to the Firebase Emulator Suite via a new method, [`FirebaseFirestore#useEmulator()`](). - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.5.0 -* [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The + +- [changed] Updated the protocol buffer dependency to the newer `protobuf-javalite` artifact. The new artifact is incompatible with the old one, so this library needed to be upgraded to avoid conflicts. No developer action is necessary. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.3 -* [changed] [firestore] now limits the number of concurrent document lookups it will perform when - resolving inconsistencies in the local cache. +- [changed] [firestore] now limits the number of concurrent document lookups it will perform when + resolving inconsistencies in the local cache. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.2 -* [changed] Removed Guava dependency from the SDK. This change is the first step in eliminating + +- [changed] Removed Guava dependency from the SDK. This change is the first step in eliminating crashes caused by apps that depend on the wrong flavor of Guava. ([Issue #1125](//github.com/firebase/firebase-android-sdk/issues/1125)) - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.1 -* [fixed] Fixed a performance regression introduced by the addition of `Query.limitToLast(n: long)` + +- [fixed] Fixed a performance regression introduced by the addition of `Query.limitToLast(n: long)` in [firestore] v21.3.1. -* [changed] Changed the in-memory representation of [firestore] documents to reduce memory +- [changed] Changed the in-memory representation of [firestore] documents to reduce memory allocations and improve performance. Calls to `DocumentSnapshot.getData()` and `DocumentSnapshot.toObject()` will see the biggest improvement. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.4.0 -* [feature] Cloud Firestore previously required that every document read in a transaction must also + +- [feature] Cloud Firestore previously required that every document read in a transaction must also be written. This requirement has been removed, and you can now read a document in a transaction without writing to it. -* [changed] Cloud Firestore now recovers more quickly when connections suffering packet loss return +- [changed] Cloud Firestore now recovers more quickly when connections suffering packet loss return to normal. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.3.1 -* [feature] Added `Query.limitToLast(n: long)`, which returns the last `n` documents as the result. +- [feature] Added `Query.limitToLast(n: long)`, which returns the last `n` documents as the result. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.3.0 -* [feature] Added `Query.whereIn()` and `Query.whereArrayContainsAny()` query operators. + +- [feature] Added `Query.whereIn()` and `Query.whereArrayContainsAny()` query operators. `Query.whereIn()` finds documents where a specified field’s value is IN a specified array. `Query.whereArrayContainsAny()` finds documents where a specified field is an array and contains ANY element of a specified array. -* [changed] Improved the performance of repeatedly executed queries. Recently executed queries +- [changed] Improved the performance of repeatedly executed queries. Recently executed queries should see dramatic improvements. This benefit is reduced if changes accumulate while the query is inactive. Queries that use the `limit()` API may not always benefit, depending on the accumulated changes. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.2.1 -* [fixed] Fixed an issue where devices targeting Android API level 19 or earlier would crash when + +- [fixed] Fixed an issue where devices targeting Android API level 19 or earlier would crash when they were unable to connect to [firestore]. -* [fixed] Fixed a race condition in Documents where access to `getData` and `getField` on the same +- [fixed] Fixed a race condition in Documents where access to `getData` and `getField` on the same document in different threads could cause a `NullPointerException`. -* [fixed] Fixed a race condition that could cause a `NullPointerException` during client +- [fixed] Fixed a race condition that could cause a `NullPointerException` during client initialization. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.2.0 -* [feature] Added an + +- [feature] Added an [`addSnapshotsInSyncListener()`]() method to `FirebaseFirestore` that notifies you when all your snapshot listeners are in sync with each other. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.1.1 -* [fixed] Addressed a regression in v21.1.0 that caused the crash: "Cannot add document to the - RemoteDocumentCache with a read time of zero". +- [fixed] Addressed a regression in v21.1.0 that caused the crash: "Cannot add document to the + RemoteDocumentCache with a read time of zero". ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.1.0 + Warning: We have received reports that this **v21.1.0 release** of the Firebase Android SDK for [firestore] can trigger an uncaught exception. Make sure to update to the next version of the Cloud Firestore SDK to get the fix. -* [feature] Added a +- [feature] Added a [`FirebaseFirestore.terminate()`]() method which terminates the instance, releasing any held resources. Once it completes, you can optionally call `clearPersistence()` to wipe persisted [firestore] data from disk. -* [feature] Added a +- [feature] Added a [`FirebaseFirestore.waitForPendingWrites()`]() method which allows users to wait on a promise that resolves when all pending writes are acknowledged by the [firestore] backend. -* [changed] Transactions now perform exponential backoff before retrying. This means transactions on +- [changed] Transactions now perform exponential backoff before retrying. This means transactions on highly contended documents are more likely to succeed. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 21.0.0 -* [changed] Transactions are now more flexible. Some sequences of operations that were previously + +- [changed] Transactions are now more flexible. Some sequences of operations that were previously incorrectly disallowed are now allowed. For example, after reading a document that doesn't exist, you can now set it multiple times successfully in a transaction. -* [fixed] Fixed an issue where query results were temporarily missing documents that previously had +- [fixed] Fixed an issue where query results were temporarily missing documents that previously had not matched but had been updated to now match the query. Refer to this [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/155) for more details. -* [changed] Added nullability annotations to improve the Kotlin developer experience. - +- [changed] Added nullability annotations to improve the Kotlin developer experience. ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 20.2.0 -* [feature] Added a `@DocumentId` annotation which can be used on a `DocumentReference` or `String` + +- [feature] Added a `@DocumentId` annotation which can be used on a `DocumentReference` or `String` property in a POJO to indicate that the SDK should automatically populate it with the document's ID. -* [fixed] Fixed an internal assertion that was triggered when an update with a +- [fixed] Fixed an internal assertion that was triggered when an update with a `FieldValue.serverTimestamp()` and an update with a `FieldValue.increment()` were pending for the same document. Refer to this [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/491) for more details. -* [changed] Improved performance of queries with large result sets. -* [changed] Improved performance for queries with filters that only return a small subset of the +- [changed] Improved performance of queries with large result sets. +- [changed] Improved performance for queries with filters that only return a small subset of the documents in a collection. -* [changed] Instead of failing silently, [firestore] now crashes the client app if it fails to load +- [changed] Instead of failing silently, [firestore] now crashes the client app if it fails to load SSL Ciphers. To avoid these crashes, you must bundle Conscrypt to support non-GMSCore devices on Android API level 19 (KitKat) or earlier (for more information, refer to [TLS on Android](https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-on-android)). - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 20.1.0 -* [changed] SSL and gRPC initialization now happens on a separate thread, which reduces the time + +- [changed] SSL and gRPC initialization now happens on a separate thread, which reduces the time taken to produce the first query result. -* [feature] Added `clearPersistence()`, which clears the persistent storage including pending writes +- [feature] Added `clearPersistence()`, which clears the persistent storage including pending writes and cached documents. This is intended to help write reliable tests. Refer to this [GitHub issue](https://github.com/firebase/firebase-js-sdk/issues/449) for more details. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 19.0.2 -* [fixed] Updated gRPC to 1.21.0. A bug in the prior version would occasionally cause a crash if a + +- [fixed] Updated gRPC to 1.21.0. A bug in the prior version would occasionally cause a crash if a network state change occurred concurrently with an RPC. Refer to [GitHub issue #428](https://github.com/firebase/firebase-android-sdk/issues/428) for more details. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 19.0.1 -* [fixed] Fixed an issue that prevented schema migrations for clients with large offline datasets. + +- [fixed] Fixed an issue that prevented schema migrations for clients with large offline datasets. Refer to this [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/370) for more details. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 19.0.0 -* [feature] You can now query across all collections in your database with a given collection ID + +- [feature] You can now query across all collections in your database with a given collection ID using the [`FirebaseFirestore.collectionGroup()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#collectionGroup) method. -* [changed] The garbage collection process for on-disk persistence that removes older documents is +- [changed] The garbage collection process for on-disk persistence that removes older documents is now enabled by default. The SDK will attempt to periodically clean up older, unused documents once the on-disk cache passes a threshold size (default: 100 MB). See [Configure cache size](/docs/firestore/manage-data/enable-offline#configure_cache_size) for details on how to configure this. -* [changed] Internal changes that rely on an updated API to obtain authentication credentials. If +- [changed] Internal changes that rely on an updated API to obtain authentication credentials. If you use [firebase_auth], update to `firebase-auth` v17.0.0 or later to ensure functionality alignment. - ## Kotlin + The Kotlin extensions library transitively includes the updated `firebase-firestore` library. The Kotlin extensions library has no additional updates. # 18.2.0 -* [unchanged] No changes to the base `firebase-firestore` library. +- [unchanged] No changes to the base `firebase-firestore` library. ## Kotlin -* [feature] The beta release of a [firestore] Android library with Kotlin extensions is now + +- [feature] The beta release of a [firestore] Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the base `firebase-firestore` library. To learn more, visit the [[firestore] KTX documentation](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary). # 18.2.0 -* [feature] Added + +- [feature] Added [`FieldValue.increment()`](), which can be used in `update()` and `set(..., SetOptions.merge())` to increment or decrement numeric field values safely without transactions. -* [feature] Added functional interface +- [feature] Added functional interface [`FirebaseFirestore.runBatch()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runBatch( com.google.firebase.firestore.WriteBatch.Function)), similar to [`FirebaseFirestore.runTransaction()`](), which allows a developer to focus on the mutations of the batch rather than on creating and committing the batch. -* [changed] Prepared the persistence layer to support collection group queries. While this feature +- [changed] Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release. -* [changed] Added `@RestrictTo` annotations to discourage the use of APIs that are not public. This +- [changed] Added `@RestrictTo` annotations to discourage the use of APIs that are not public. This affects internal APIs that were previously obfuscated and are not mentioned in our documentation. -* [changed] Improved error messages for certain Number types that are not supported by our +- [changed] Improved error messages for certain Number types that are not supported by our serialization layer. # 18.1.0 -* [changed] Internal changes to ensure functionality alignment with other SDK releases. -* [fixed] Fixed calculation of SQLite database size on Android 9 Pie devices. On these devices, the + +- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [fixed] Fixed calculation of SQLite database size on Android 9 Pie devices. On these devices, the previous method sometimes incorrectly calculated the size by a few MBs, potentially delaying garbage collection. # 18.0.1 -* [fixed] Fixed an issue where [firestore] would crash if handling write batches larger than 2 MB in + +- [fixed] Fixed an issue where [firestore] would crash if handling write batches larger than 2 MB in size. -* [changed] [firestore] now recovers more quickly from long periods without network access. +- [changed] [firestore] now recovers more quickly from long periods without network access. # 18.0.0 -* [changed] The `timestampsInSnapshotsEnabled` setting is now enabled by default. Timestamp fields + +- [changed] The `timestampsInSnapshotsEnabled` setting is now enabled by default. Timestamp fields that read from a `DocumentSnapshot` are now returned as `Timestamp` objects instead of `Date` objects. This is a breaking change; developers must update any code that expects to receive a `Date` object. See [`FirebaseFirestoreSettings.Builder.setTimestampsInSnapshotsEnabled()`]() for more details. -* [feature] Custom objects (POJOs) can now be passed in several ways: as a field value in +- [feature] Custom objects (POJOs) can now be passed in several ways: as a field value in `update()`, within `Map<>` objects passed to `set()`, in array transform operations, and in query filters. -* [feature] `DocumentSnapshot.get()` now supports retrieving fields as custom objects (POJOs) by +- [feature] `DocumentSnapshot.get()` now supports retrieving fields as custom objects (POJOs) by passing a `Class` instance, e.g., `snapshot.get("field", CustomType.class)`. -* [fixed] Fixed an issue where if an app sent a write to the server, but the app was shut down +- [fixed] Fixed an issue where if an app sent a write to the server, but the app was shut down before a listener received the write, the app could crash. # 17.1.5 -* [changed] [firestore] now recovers more quickly from bad network states. -* [changed] Improved performance for reading large collections. -* [fixed] Offline persistence now properly records schema downgrades. This is a forward-looking + +- [changed] [firestore] now recovers more quickly from bad network states. +- [changed] Improved performance for reading large collections. +- [fixed] Offline persistence now properly records schema downgrades. This is a forward-looking change that allows you to safely downgrade from future SDK versions to this version (v17.1.5). You can already safely downgrade versions now depending on the source version. For example, you can safely downgrade from v17.1.4 to v17.1.2 because there are no schema changes between those versions. Related: https://github.com/firebase/firebase-android-sdk/issues/134 # 17.1.4 -* [fixed] Fixed a SQLite transaction-handling issue that occasionally masked exceptions when + +- [fixed] Fixed a SQLite transaction-handling issue that occasionally masked exceptions when Firestore closed a transaction that was never started. For more information, see the [issue report in GitHub](https://github.com/firebase/firebase-android-sdk/issues/115). -* [fixed] Fixed a race condition that caused a `SQLiteDatabaseLockedException` when an app attempted +- [fixed] Fixed a race condition that caused a `SQLiteDatabaseLockedException` when an app attempted to access the SQLite database from multiple threads. # 17.1.2 -* [changed] Changed how the SDK handles locally-updated documents while syncing those updates with + +- [changed] Changed how the SDK handles locally-updated documents while syncing those updates with Cloud Firestore servers. This can lead to slight behavior changes and may affect the [`SnapshotMetadata.hasPendingWrites()`]() metadata flag. -* [changed] Eliminated superfluous update events for locally cached documents that are known to lag +- [changed] Eliminated superfluous update events for locally cached documents that are known to lag behind the server version. Instead, the SDK buffers these events until the client has caught up with the server. # 17.1.1 -* [fixed] Fixed an issue where the first `get()` call made after being offline could incorrectly + +- [fixed] Fixed an issue where the first `get()` call made after being offline could incorrectly return cached data without attempting to reach the backend. -* [changed] Changed `get()` to only make one attempt to reach the backend before returning cached +- [changed] Changed `get()` to only make one attempt to reach the backend before returning cached data, potentially reducing delays while offline. -* [fixed] Fixed an issue that caused Firebase to drop empty objects from calls to +- [fixed] Fixed an issue that caused Firebase to drop empty objects from calls to `set(..., SetOptions.merge())`. -* [fixed] Updated printf-style templates to ensure that they're compile time constants. Previously, +- [fixed] Updated printf-style templates to ensure that they're compile time constants. Previously, some were influenced by error messages. When those error messages contained `%p` or other, related tokens, `String.format()` would throw an exception. -* [changed] Some SDK errors that represent common mistakes, like permission errors or missing +- [changed] Some SDK errors that represent common mistakes, like permission errors or missing indexes, are automatically logged as warnings in addition to being surfaced via the API. # 17.1.0 -* [fixed] Corrected an issue with methods in the Cloud Firestore v17.0.5 release. To avoid potential + +- [fixed] Corrected an issue with methods in the Cloud Firestore v17.0.5 release. To avoid potential errors, don't use v17.0.5. # 17.0.5 -* [feature] Added + +- [feature] Added [`FieldValue.arrayUnion()`]() and [`FieldValue.arrayRemove()`]() to atomically add and remove elements from an array field in a document. -* [feature] Added +- [feature] Added [`Query.whereArrayContains()`](/docs/reference/android/com/google/firebase/firestore/Query.html#whereArrayContains(com.google.firebase.firestore.FieldPath, java.lang.Object)) query operator to find documents where an array field contains a specific element. -* [changed] Improved offline performance with many outstanding writes. -* [fixed] Firestore will now recover from auth token expiration when the system clock is wrong. +- [changed] Improved offline performance with many outstanding writes. +- [fixed] Firestore will now recover from auth token expiration when the system clock is wrong. # 17.0.4 -* [fixed] Fixed an issue where queries returned fewer results than they should. The issue related to + +- [fixed] Fixed an issue where queries returned fewer results than they should. The issue related to [improper caching](https://github.com/firebase/firebase-ios-sdk/issues/1548), so clients may use extra bandwidth the first time they launch with this version of the SDK, as they re-download cleared cached data. # 17.0.3 -* [changed] The [`Timestamp`](/docs/reference/android/com/google/firebase/Timestamp) class now + +- [changed] The [`Timestamp`](/docs/reference/android/com/google/firebase/Timestamp) class now implements [`Parcelable`](//developer.android.com/reference/android/os/Parcelable) in addition to [`Comparable`](//developer.android.com/reference/java/lang/Comparable). # 17.0.2 -* [changed] gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker failover between + +- [changed] gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker failover between Wi-Fi and cellular networks. # 17.0.1 -* [fixed] Fixed an issue where `set()` didn't correctly respect + +- [fixed] Fixed an issue where `set()` didn't correctly respect [`SetOptions.mergeFields()`](>) for data containing [`FieldValue.delete()`]() or [`FieldValue.serverTimestamp()`]() values. - diff --git a/firebase-sessions/CHANGELOG.md b/firebase-sessions/CHANGELOG.md index 033134ae30f..a3686786202 100644 --- a/firebase-sessions/CHANGELOG.md +++ b/firebase-sessions/CHANGELOG.md @@ -1,69 +1,84 @@ # Unreleased - # 3.0.3 -* [fixed] Made creating DataStore files more resilient (#7440) + +- [fixed] Made creating DataStore files more resilient (#7440) # 3.0.2 -* [changed] Bumped internal dependencies. + +- [changed] Bumped internal dependencies. # 3.0.1 -* [fixed] Bumped DataStore dependency to include the mitigation for `CorruptionException` released + +- [fixed] Bumped DataStore dependency to include the mitigation for `CorruptionException` released in version `1.1.5`. See Jetpacks' DataStore [release notes](https://developer.android.com/jetpack/androidx/releases/datastore#1.1.5). # 3.0.0 -* [changed] Added internal api for Crashlytics to notify Sessions of crash events -* [changed] Use multi-process DataStore instead of Preferences DataStore -* [changed] Update the heuristic to detect cold app starts -* [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. + +- [changed] Added internal api for Crashlytics to notify Sessions of crash events +- [changed] Use multi-process DataStore instead of Preferences DataStore +- [changed] Update the heuristic to detect cold app starts +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. # 2.1.1 -* [unchanged] Updated to keep SDK versions aligned. + +- [unchanged] Updated to keep SDK versions aligned. # 2.1.0 -* [changed] Add warning for known issue b/328687152 -* [changed] Use Dagger for dependency injection -* [changed] Updated datastore dependency to v1.1.3 to fix + +- [changed] Add warning for known issue b/328687152 +- [changed] Use Dagger for dependency injection +- [changed] Updated datastore dependency to v1.1.3 to fix [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8). # 2.0.9 -* [fixed] Make AQS resilient to background init in multi-process apps. + +- [fixed] Make AQS resilient to background init in multi-process apps. # 2.0.7 -* [fixed] Removed extraneous logs that risk leaking internal identifiers. + +- [fixed] Removed extraneous logs that risk leaking internal identifiers. # 2.0.6 -* [changed] Updated protobuf dependency to `3.25.5` to fix + +- [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8). # 2.0.5 -* [unchanged] Updated to keep SDK versions aligned. + +- [unchanged] Updated to keep SDK versions aligned. # 2.0.4 -* [fixed] Handled datastore writes when device has full internal memory more gracefully. (GitHub + +- [fixed] Handled datastore writes when device has full internal memory more gracefully. (GitHub [#5859](https://github.com/firebase/firebase-android-sdk/issues/5859)) -* [fixed] Safely unbind malfunctioning session lifecycle service to release service connections. +- [fixed] Safely unbind malfunctioning session lifecycle service to release service connections. (GitHub [#5869](https://github.com/firebase/firebase-android-sdk/issues/5869)) # 1.2.3 -* [fixed] Force validation or rotation of FIDs. + +- [fixed] Force validation or rotation of FIDs. # 1.2.1 -* [changed] Bump internal dependencies. -* [fixed] Handle corruption in DataStore Preferences more gracefully. + +- [changed] Bump internal dependencies. +- [fixed] Handle corruption in DataStore Preferences more gracefully. # 1.2.0 -* [feature] Added support for accurate sessions on multi-process apps. + +- [feature] Added support for accurate sessions on multi-process apps. # 1.0.2 -* [fixed] Made Sessions more resilient to the FirebaseApp instance being deleted. + +- [fixed] Made Sessions more resilient to the FirebaseApp instance being deleted. # 1.0.1 -* [fixed] Fixed NPE when no version name is set + +- [fixed] Fixed NPE when no version name is set ([#5195](https://github.com/firebase/firebase-android-sdk/issues/5195)). -* [fixed] Populate DataCollectionStatus fields for Crashlytics and Perf. +- [fixed] Populate DataCollectionStatus fields for Crashlytics and Perf. # 1.0.0 -* [feature] Initial Firebase sessions library. +- [feature] Initial Firebase sessions library.