From 930730dcf7905110ef81d276060b96a9987a5e55 Mon Sep 17 00:00:00 2001 From: Mila <107142260+milaGGL@users.noreply.github.com> Date: Mon, 17 Aug 2026 10:45:24 -0400 Subject: [PATCH 1/2] [Infra] format Changelogs --- .../firebase-ai-ksp-processor/CHANGELOG.md | 8 +- .../firebase-ai-ondevice-interop/CHANGELOG.md | 4 +- ai-logic/firebase-ai-ondevice/CHANGELOG.md | 4 +- ai-logic/firebase-ai/CHANGELOG.md | 303 ++++---- .../CHANGELOG.md | 29 +- appcheck/firebase-appcheck-debug/CHANGELOG.md | 45 +- .../firebase-appcheck-interop/CHANGELOG.md | 1 - .../CHANGELOG.md | 27 +- .../firebase-appcheck-recaptcha/CHANGELOG.md | 8 +- appcheck/firebase-appcheck/CHANGELOG.md | 97 +-- build.gradle.kts | 51 +- encoders/firebase-decoders-json/CHANGELOG.md | 1 - encoders/firebase-encoders-json/CHANGELOG.md | 1 - .../firebase-encoders-processor/CHANGELOG.md | 1 - encoders/firebase-encoders-proto/CHANGELOG.md | 1 - .../firebase-encoders-reflective/CHANGELOG.md | 1 - encoders/firebase-encoders/CHANGELOG.md | 1 - .../protoc-gen-firebase-encoders/CHANGELOG.md | 1 - firebase-abt/CHANGELOG.md | 36 +- firebase-annotations/CHANGELOG.md | 4 +- firebase-appdistribution-api/CHANGELOG.md | 96 +-- firebase-appdistribution/CHANGELOG.md | 67 +- firebase-common/CHANGELOG.md | 47 +- firebase-components/CHANGELOG.md | 14 +- .../CHANGELOG.md | 7 +- firebase-config-interop/CHANGELOG.md | 1 - firebase-config/CHANGELOG.md | 266 ++++--- firebase-crashlytics-ndk/CHANGELOG.md | 82 ++- firebase-crashlytics/CHANGELOG.md | 374 ++++++---- firebase-database-collection/CHANGELOG.md | 1 - firebase-database/CHANGELOG.md | 156 ++-- firebase-dataconnect/CHANGELOG.md | 140 ++-- firebase-datatransport/CHANGELOG.md | 7 +- firebase-dynamic-links/CHANGELOG.md | 91 ++- firebase-firestore/CHANGELOG.md | 697 ++++++++++-------- firebase-functions/CHANGELOG.md | 122 +-- firebase-inappmessaging-display/CHANGELOG.md | 174 +++-- firebase-inappmessaging/CHANGELOG.md | 172 +++-- firebase-installations-interop/CHANGELOG.md | 1 - firebase-installations/CHANGELOG.md | 45 +- firebase-messaging-directboot/CHANGELOG.md | 110 +-- firebase-messaging/CHANGELOG.md | 372 ++++++---- firebase-ml-modeldownloader/CHANGELOG.md | 108 +-- firebase-perf/CHANGELOG.md | 287 ++++---- firebase-sessions/CHANGELOG.md | 31 +- firebase-storage/CHANGELOG.md | 128 ++-- firebase-vertexai/CHANGELOG.md | 215 +++--- .../gradle/plugins/ChangelogFormatter.kt | 118 +++ transport/transport-api/CHANGELOG.md | 7 +- transport/transport-backend-cct/CHANGELOG.md | 1 - .../transport-runtime-testing/CHANGELOG.md | 1 - transport/transport-runtime/CHANGELOG.md | 1 - 52 files changed, 2639 insertions(+), 1924 deletions(-) create mode 100644 plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt diff --git a/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md b/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md index 947ead13085..6a7e8939b22 100644 --- a/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md +++ b/ai-logic/firebase-ai-ksp-processor/CHANGELOG.md @@ -1,10 +1,10 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) # 16.0.0 - [feature] Initial release of the Firebase AI KSP processor SDK - (`firebase-ai-ksp-processor`). This SDK provides support for - automatic Json schema generation. - + (`firebase-ai-ksp-processor`). This SDK provides support for automatic Json + schema generation. diff --git a/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md b/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md index 198bf254786..16b93f57098 100644 --- a/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md +++ b/ai-logic/firebase-ai-ondevice-interop/CHANGELOG.md @@ -1,6 +1,7 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) # 16.0.0-beta03 @@ -13,4 +14,3 @@ # 16.0.0-beta01 - [feature] Initial release. - diff --git a/ai-logic/firebase-ai-ondevice/CHANGELOG.md b/ai-logic/firebase-ai-ondevice/CHANGELOG.md index 79bbab5838b..c5a693e44f0 100644 --- a/ai-logic/firebase-ai-ondevice/CHANGELOG.md +++ b/ai-logic/firebase-ai-ondevice/CHANGELOG.md @@ -1,6 +1,7 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) # 16.0.0-beta04 @@ -17,4 +18,3 @@ # 16.0.0-beta01 - [feature] Initial release. - diff --git a/ai-logic/firebase-ai/CHANGELOG.md b/ai-logic/firebase-ai/CHANGELOG.md index 75e1a873d33..a867b3f73cc 100644 --- a/ai-logic/firebase-ai/CHANGELOG.md +++ b/ai-logic/firebase-ai/CHANGELOG.md @@ -1,36 +1,49 @@ # Unreleased -- [feature] Added support for on-device structured output generation using `generateObject` (#8395) -- [changed] **Breaking Change**: Removed deprecated Imagen methods and types due to Imagen models being shut down in August 2026. As a replacement, you can [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). -- [changed] Adjusts `LiveSession.isClosed` to better reflect underlying connection closure state and not consume frames (#8511) -- [changed] Replaced the `"function"` conversational role with `"user"` for function response content. (#8508) +- [feature] Added support for on-device structured output generation using + `generateObject` (#8395) +- [changed] **Breaking Change**: Removed deprecated Imagen methods and types +due to Imagen models being shut down in August 2026. As a replacement, you can +[migrate your apps to use Gemini Image models (the "Nano Banana" +models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). +- [changed] Adjusts `LiveSession.isClosed` to better reflect underlying + connection closure state and not consume frames (#8511) +- [changed] Replaced the `"function"` conversational role with `"user"` for + function response content. (#8508) # 17.15.0 -- [feature] Added support for `RealtimeInputConfig` and `ActivityDetectionConfig` to configure voice activity detection in Live API. Added `sendStartActivityRealtime` and `sendStopActivityRealtime` to `LiveSession` for manual activity control. (#8080) +- [feature] Added support for `RealtimeInputConfig` and + `ActivityDetectionConfig` to configure voice activity detection in Live API. + Added `sendStartActivityRealtime` and `sendStopActivityRealtime` to + `LiveSession` for manual activity control. (#8080) - [feature] Added `getOnDeviceModelName` to `GenerativeModel` (#8247) - [changed] Deprecated `GenerativeBackend.vertexAI` in favor of - `GenerativeBackend.agentPlatform` to reflect the renaming of Vertex - AI to Gemini Enterprise Agent Platform. (#8437) - - Note: The only difference for `GenerativeBackend.agentPlatform` is the default - [location for accessing the model](https://firebase.google.com/docs/ai-logic/locations?api=vertex). - The default location for `GenerativeBackend.agentPlatform` is `global`, whereas - the default location for `GenerativeBackend.vertexAI` is `us-central1`. To use - `us-central1` with `GenerativeBackend.agentPlatform`, specify - `GenerativeBackend.agentPlatform(location = "us-central1")` when - initializing the SDK. However, note that most new Gemini models do - not support `us-central1`. + `GenerativeBackend.agentPlatform` to reflect the renaming of Vertex AI to + Gemini Enterprise Agent Platform. (#8437) + +Note: The only difference for `GenerativeBackend.agentPlatform` is the default +[location for accessing the +model](https://firebase.google.com/docs/ai-logic/locations?api=vertex). The +default location for `GenerativeBackend.agentPlatform` is `global`, whereas the +default location for `GenerativeBackend.vertexAI` is `us-central1`. To use +`us-central1` with `GenerativeBackend.agentPlatform`, specify +`GenerativeBackend.agentPlatform(location = "us-central1")` when initializing +the SDK. However, note that most new Gemini models do not support `us-central1`. # 17.14.0 -- [feature] Added static factory methods `createWithThinking` for `Part` implementations to expose `thoughtSignature` and `isThought` properties. (#8352) -- [feature] Added automatic function calling support for `LiveGenerativeModel`. (#8223) +- [feature] Added static factory methods `createWithThinking` for `Part` + implementations to expose `thoughtSignature` and `isThought` properties. + (#8352) +- [feature] Added automatic function calling support for `LiveGenerativeModel`. + (#8223) # 17.13.0 -- [feature] Expanded `SpeechConfig` to support `MultiSpeakerVoiceConfig` and `LanguageCode`. - Integrated `SpeechConfig` into `GenerationConfig` to support Text-to-speech generation (TTS). (#8100) +- [feature] Expanded `SpeechConfig` to support `MultiSpeakerVoiceConfig` and + `LanguageCode`. Integrated `SpeechConfig` into `GenerationConfig` to support + Text-to-speech generation (TTS). (#8100) - [feature] Added `modelVersion` property to `GenerateContentResponse` (#8227) - [feature] Added [firebase_app_check] as a dependency of the SDK (#8225) @@ -42,51 +55,67 @@ # 17.12.0 - [feature] Added support for `ImageConfig` and `finishMessage`. (#8020) -- [feature] Added a Java-friendly wrapper for TemplateChat interactions (`TemplateChatFutures`). -- [feature] Added support for [Maps Grounding](https://ai.google.dev/gemini-api/docs/maps-grounding) (#7950) -- [feature] Added the `turnComplete` argument to multiple `LiveSession.send()` methods. (#8014) -- [fixed] Fixed `LiveGenerativeModel.connect()` not attaching the `X-Firebase-AppCheck` - header, causing Live API requests to be rejected when App Check is enforced on AI Logic. (#8060) -- [feature] Added support for Java usage of Chat interactions using server prompt templates (#8065) +- [feature] Added a Java-friendly wrapper for TemplateChat interactions + (`TemplateChatFutures`). +- [feature] Added support for [Maps + Grounding](https://ai.google.dev/gemini-api/docs/maps-grounding) (#7950) +- [feature] Added the `turnComplete` argument to multiple `LiveSession.send()` + methods. (#8014) +- [fixed] Fixed `LiveGenerativeModel.connect()` not attaching the + `X-Firebase-AppCheck` header, causing Live API requests to be rejected when + App Check is enforced on AI Logic. (#8060) +- [feature] Added support for Java usage of Chat interactions using server + prompt templates (#8065) # 17.11.0 -- [deprecated] All Imagen models are deprecated and will shut down as early as June 2026. - As a replacement, you can [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). -- [feature] Added support for Chat interactions using server prompt templates (#7986) -- [feature] Added support for function calling in Chat interactions using server prompt templates (#8004) -- [fixed] Fixed an issue causing network timeouts to throw the incorrect exception type, instead of - `RequestTimeoutException` (#7966) -- [fixed] Fixed missing `toString()` implementation for `InferenceSource` (#7970) -- [fixed] Fixed an issue causing the SDK to throw an exception if an unknown message was received - from the LiveAPI model, instead of ignoring it (#7975) +- [deprecated] All Imagen models are deprecated and will shut down as early as + June 2026. As a replacement, you can [migrate your apps to use Gemini Image + models (the "Nano Banana" + models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). +- [feature] Added support for Chat interactions using server prompt templates + (#7986) +- [feature] Added support for function calling in Chat interactions using + server prompt templates (#8004) +- [fixed] Fixed an issue causing network timeouts to throw the incorrect + exception type, instead of `RequestTimeoutException` (#7966) +- [fixed] Fixed missing `toString()` implementation for `InferenceSource` + (#7970) +- [fixed] Fixed an issue causing the SDK to throw an exception if an unknown + message was received from the LiveAPI model, instead of ignoring it (#7975) # 17.10.1 -- [fixed] Fixed an issue causing Live API to fail when using the `GoogleAI` backend (#7880) -- [changed] Added the `hybrid` component to request headers coming from `prefer_in_cloud` configurations (#7857) +- [fixed] Fixed an issue causing Live API to fail when using the `GoogleAI` + backend (#7880) +- [changed] Added the `hybrid` component to request headers coming from + `prefer_in_cloud` configurations (#7857) - [fixed] Fixed documentation errors (#7891) # 17.10.0 - [feature] Added experimental support for on-device inference (#7739) -- [feature] Added automatic function calling support with `AutoFunctionDeclaration`. -- [feature] Added no-argument overloads for `Tool.urlContext()` and `Tool.googleSearch()`. +- [feature] Added automatic function calling support with + `AutoFunctionDeclaration`. +- [feature] Added no-argument overloads for `Tool.urlContext()` and + `Tool.googleSearch()`. # 17.9.0 -- [feature] Added `JsonSchema`, `GenerativeModel#generateObject` and the firebase-ai-ksp processor's - annotation (`Generable`, and `Guide`). To learn more about how to use them, and the ksp processor - see the [Firebase KSP Processor Readme](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-ai-ksp-processor/README.md) +- [feature] Added `JsonSchema`, `GenerativeModel#generateObject` and the + firebase-ai-ksp processor's annotation (`Generable`, and `Guide`). To learn + more about how to use them, and the ksp processor see the [Firebase KSP + Processor + Readme](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-ai-ksp-processor/README.md) - [feature] Added support for [API Key - restrictions](https://docs.cloud.google.com/docs/authentication/api-keys#adding-application-restrictions) (#7679) + restrictions](https://docs.cloud.google.com/docs/authentication/api-keys#adding-application-restrictions) + (#7679) - [changed] The URL context tool APIs are now GA. (#7686) -- [feature] Added support for implicit caching (context caching) - metadata in GenerateContentResponse. You can now access - cachedContentTokenCount and cacheTokensDetails in UsageMetadata to - see savings from cached content. See the [caching - documentation](https://ai.google.dev/gemini-api/docs/caching) for - more details. (#7647) +- [feature] Added support for implicit caching (context caching) metadata in + GenerateContentResponse. You can now access cachedContentTokenCount and + cacheTokensDetails in UsageMetadata to see savings from cached content. See + the [caching documentation](https://ai.google.dev/gemini-api/docs/caching) + for more details. (#7647) # 17.8.0 @@ -96,120 +125,140 @@ # 17.7.0 -- [changed] Added `LiveAudioConversationConfig` to control different aspects of the conversation - while using the `startAudioConversation` function. -- [fixed] Fixed an issue causing streaming chat interactions to drop thought signatures. (#7562) +- [changed] Added `LiveAudioConversationConfig` to control different aspects of + the conversation while using the `startAudioConversation` function. +- [fixed] Fixed an issue causing streaming chat interactions to drop thought + signatures. (#7562) # 17.6.0 -- [feature] Added support for server templates via `TemplateGenerativeModel` and - `TemplateImagenModel`. (#7503) +- [feature] Added support for server templates via `TemplateGenerativeModel` + and `TemplateImagenModel`. (#7503) # 17.5.0 - [changed] Added better scheduling and louder output for Live API. - [changed] Added support for input and output transcription. (#7482) -- [feature] Added support for sending realtime audio and video in a `LiveSession`. +- [feature] Added support for sending realtime audio and video in a + `LiveSession`. - [changed] Removed redundant internal exception types. (#7475) # 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 - 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] **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 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). # 17.3.0 - [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 - have not been granted by the user. -- [feature] Added helper functions to `LiveSession` to allow developers to track the status of the - audio session and the underlying websocket connection. +- [changed] Marked the public constructors for `ExecutableCodePart` and + `CodeExecutionResultPart` as deprecated. +- [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 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 - log them and filter them from the response (#7333) +- [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 - model's internal reasoning process. -- [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 - configured. -- [changed] Added a `dilation` parameter to `ImagenMaskReference.generateMaskAndPadForOutpainting` - (#7260) -- [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) +- [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 exception when the response contained + no candidates. +- [changed] Added better description for requests which fail due to the Gemini + API not being configured. +- [changed] Added a `dilation` parameter to + `ImagenMaskReference.generateMaskAndPadForOutpainting` (#7260) +- [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 - transfer, and subject references (#7075) -- [feature] **Preview:** Added support for bidirectional streaming in Gemini Developer Api +- [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 # 17.0.0 -- [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). - - **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 - `countTokens()`. -- [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. +- [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). + - **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 `countTokens()`. +- [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. # 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`, - `minimum` and `maximum`. As well as support for the `anyOf` schema. (#7013) +- [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 - to the API. -- [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` - 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] 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` class. +- [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 # 16.0.0 -- [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 - free tier offering. - - Using the Firebase AI SDK with the Vertex AI Gemini API is still generally available (GA). - -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` -(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. - +- [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 free tier offering. + - Using the Firebase AI SDK with the Vertex AI Gemini API is still generally +available (GA). + +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` (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/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md index 68dcccdeab6..7d1eb5548dd 100644 --- a/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md +++ b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md @@ -54,17 +54,19 @@ # 16.1.1 -- [changed] Integrated the [app_check] Debug Testing SDK with Firebase components. (GitHub +- [changed] Integrated the [app_check] Debug Testing SDK with Firebase + components. (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. # 16.0.1 -- [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). # 16.0.0 @@ -72,7 +74,8 @@ # 16.0.0-beta06 -- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom provider. +- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom + provider. # 16.0.0-beta05 @@ -80,24 +83,24 @@ # 16.0.0-beta04 -- [changed] Improved error handling logic by minimizing the amount of requests that are unlikely to - succeed. +- [changed] Improved error handling logic by minimizing the amount of requests + that are unlikely to succeed. - [fixed] Fixed heartbeat reporting. # 16.0.0-beta03 -- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to [app_check] network - calls. +- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to + [app_check] network calls. # 16.0.0-beta02 - [feature] Added [`getAppCheckToken()`](), [`AppCheckTokenListener`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener), - and associated setters and removers for developers to request and observe changes to the - [app_check] token. + and associated setters and removers for developers to request and observe + changes to the [app_check] token. # 16.0.0-beta01 -- [feature] Initial beta release of the [app_check] Debug Testing SDK with abuse reduction features. - +- [feature] Initial beta release of the [app_check] Debug Testing SDK with + abuse reduction features. diff --git a/appcheck/firebase-appcheck-debug/CHANGELOG.md b/appcheck/firebase-appcheck-debug/CHANGELOG.md index 08ea9bddb6b..468316adf56 100644 --- a/appcheck/firebase-appcheck-debug/CHANGELOG.md +++ b/appcheck/firebase-appcheck-debug/CHANGELOG.md @@ -1,10 +1,12 @@ # Unreleased -- [changed] Updated App Check debug token log message to include Firebase CLI commands and Firebase Console registration links. (#8503) +- [changed] Updated App Check debug token log message to include Firebase CLI + commands and Firebase Console registration links. (#8503) # 19.4.0 -- [fixed] Log debug secret on every DebugAppCheckProvider initialization. (#8454) +- [fixed] Log debug secret on every DebugAppCheckProvider initialization. + (#8454) # 19.3.0 @@ -16,7 +18,8 @@ # 19.1.0 -- [fixed] Fixed issue preventing limited use tokens from being correctly generated. (#8204) +- [fixed] Fixed issue preventing limited use tokens from being correctly + generated. (#8204) # 19.0.2 @@ -56,22 +59,25 @@ # 16.1.1 -- [changed] Migrated [app_check] SDKs to use standard Firebase executors. (GitHub - [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} and +- [changed] Migrated [app_check] SDKs to use standard Firebase executors. + (GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: + .external} and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) -- [changed] Integrated the [app_check] Debug SDK with Firebase components. (GitHub - [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) +- [changed] Integrated the [app_check] Debug SDK with Firebase components. + (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: + .external}) - [changed] Moved Task continuations off the main thread. (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. # 16.0.1 -- [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). # 16.0.0 @@ -79,7 +85,8 @@ # 16.0.0-beta06 -- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom provider. +- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom + provider. # 16.0.0-beta05 @@ -87,24 +94,24 @@ # 16.0.0-beta04 -- [changed] Improved error handling logic by minimizing the amount of requests that are unlikely to - succeed. +- [changed] Improved error handling logic by minimizing the amount of requests + that are unlikely to succeed. - [fixed] Fixed heartbeat reporting. # 16.0.0-beta03 -- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to [app_check] network - calls. +- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to + [app_check] network calls. # 16.0.0-beta02 - [feature] Added [`getAppCheckToken()`](), [`AppCheckTokenListener`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener), - and associated setters and removers for developers to request and observe changes to the - [app_check] token. + and associated setters and removers for developers to request and observe + changes to the [app_check] token. # 16.0.0-beta01 -- [feature] Initial beta release of the [app_check] Debug SDK with abuse reduction features. - +- [feature] Initial beta release of the [app_check] Debug SDK with abuse + reduction features. diff --git a/appcheck/firebase-appcheck-interop/CHANGELOG.md b/appcheck/firebase-appcheck-interop/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/appcheck/firebase-appcheck-interop/CHANGELOG.md +++ b/appcheck/firebase-appcheck-interop/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md index 17a0ec68fd9..9ca194cda31 100644 --- a/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md +++ b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md @@ -14,7 +14,8 @@ # 19.1.0 -- [fixed] Fixed issue preventing limited use tokens from being correctly generated. (#8204) +- [fixed] Fixed issue preventing limited use tokens from being correctly + generated. (#8204) # 19.0.2 @@ -26,7 +27,8 @@ # 19.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or +higher. # 18.0.0 @@ -55,25 +57,28 @@ # 16.1.1 -- [changed] Migrated [app_check] SDKs to use standard Firebase executors. (GitHub - [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} and +- [changed] Migrated [app_check] SDKs to use standard Firebase executors. + (GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: + .external} and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) -- [changed] Integrated the [app_check] Play integrity SDK with Firebase components. (GitHub +- [changed] Integrated the [app_check] Play integrity SDK with Firebase + components. (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) - [changed] Moved Task continuations off the main thread. (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. # 16.0.1 -- [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). # 16.0.0 -- [feature] Added support for [Play Integrity](https://developer.android.com/google/play/integrity) - as an attestation provider. - +- [feature] Added support for [Play + Integrity](https://developer.android.com/google/play/integrity) as an + attestation provider. diff --git a/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md b/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md index 9215cdbece2..8798f8a5e11 100644 --- a/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md +++ b/appcheck/firebase-appcheck-recaptcha/CHANGELOG.md @@ -2,15 +2,15 @@ # 19.2.0 -- [changed] Initialization now requires the site key to be passed as a parameter. (#8457) +- [changed] Initialization now requires the site key to be passed as a + parameter. (#8457) # 19.1.0 -- [changed] Added warning logs when failing to initialize the reCAPTCHA client or - exchange attestation for a token (#8330) +- [changed] Added warning logs when failing to initialize the reCAPTCHA client + or exchange attestation for a token (#8330) # 19.0.0 - [feature] Initial release of the Firebase AppCheck reCaptcha SDK (`firebase-appcheck-recaptcha`) - diff --git a/appcheck/firebase-appcheck/CHANGELOG.md b/appcheck/firebase-appcheck/CHANGELOG.md index 62e7a29ab99..a97b2cc47fe 100644 --- a/appcheck/firebase-appcheck/CHANGELOG.md +++ b/appcheck/firebase-appcheck/CHANGELOG.md @@ -14,13 +14,15 @@ # 19.1.0 -- [fixed] Fixed issue preventing limited use tokens from being correctly generated. (#8204) -- [changed] Added new `getLimitedUseToken` to `AppCheckProvider` interface, that default to - calling `getToken`. (#8204) +- [fixed] Fixed issue preventing limited use tokens from being correctly + generated. (#8204) +- [changed] Added new `getLimitedUseToken` to `AppCheckProvider` interface, + that default to calling `getToken`. (#8204) # 19.0.2 -- [fixed] Fixed a bug causing custom `AppCheckProvider` returning errors without a message to throw an exception. +- [fixed] Fixed a bug causing custom `AppCheckProvider` returning errors + without a message to throw an exception. [#7624](//github.com/firebase/firebase-android-sdk/pull/7624) # 19.0.1 @@ -29,17 +31,19 @@ # 19.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 - 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). +- [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). # 18.0.0 - [changed] Bump internal dependencies - [changed] Internal support for `SafetyNet` has been dropped, as the - [SafetyNet Attestation API has been deprecated.](https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline#safetynet_attestation_deprecation_timeline) + [SafetyNet Attestation API has been + deprecated.](https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline#safetynet_attestation_deprecation_timeline) ## Kotlin @@ -57,7 +61,8 @@ Kotlin extensions library has no additional updates. # 17.1.1 -- [fixed] Fixed a bug causing internal tests to depend directly on `firebase-common`. +- [fixed] Fixed a bug causing internal tests to depend directly on + `firebase-common`. - [fixed] Fixed client-side throttling in Play Integrity flows. ## Kotlin @@ -67,15 +72,18 @@ Kotlin extensions library has no additional updates. # 17.1.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-appcheck-ktx` to - `com.google.firebase:firebase-appcheck` under the `com.google.firebase.appcheck` 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-appcheck-ktx` have been added to - `com.google.firebase:firebase-appcheck` under the `com.google.firebase.appcheck` package, and all - the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-appcheck-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-appcheck-ktx` to + `com.google.firebase:firebase-appcheck` under the + `com.google.firebase.appcheck` 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-appcheck-ktx` + have been added to `com.google.firebase:firebase-appcheck` under the + `com.google.firebase.appcheck` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-appcheck-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 @@ -84,7 +92,8 @@ Kotlin extensions library has no additional updates. # 17.0.1 -- [changed] Internal updates to allow Firebase SDKs to obtain limited-use tokens. +- [changed] Internal updates to allow Firebase SDKs to obtain limited-use + tokens. # 17.0.0 @@ -108,8 +117,9 @@ Kotlin extensions library has no additional updates. # 16.1.1 -- [changed] Migrated [app_check] SDKs to use standard Firebase executors. (GitHub - [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} and +- [changed] Migrated [app_check] SDKs to use standard Firebase executors. + (GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: + .external} and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) - [changed] Moved Task continuations off the main thread. (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) @@ -121,33 +131,38 @@ Kotlin extensions library has no additional updates. # 16.1.0 -- [unchanged] Updated to accommodate the release of the updated [app_check] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [app_check] + Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-appcheck` 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-appcheck-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. + .external} to `firebase-appcheck-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. # 16.0.1 -- [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). # 16.0.0 - [changed] [app_check] has exited beta and is now generally available for use. -- [feature] Added support for [Play Integrity](https://developer.android.com/google/play/integrity) - as an attestation provider. +- [feature] Added support for [Play + Integrity](https://developer.android.com/google/play/integrity) as an + attestation provider. # 16.0.0-beta06 -- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom provider. +- [fixed] Fixed a bug in the [app_check] token refresh flow when using a custom + provider. # 16.0.0-beta05 @@ -155,24 +170,24 @@ Kotlin extensions library has the following additional updates: # 16.0.0-beta04 -- [changed] Improved error handling logic by minimizing the amount of requests that are unlikely to - succeed. +- [changed] Improved error handling logic by minimizing the amount of requests + that are unlikely to succeed. - [fixed] Fixed heartbeat reporting. # 16.0.0-beta03 -- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to [app_check] network - calls. +- [changed] Added `X-Android-Package` and `X-Android-Cert` request headers to + [app_check] network calls. # 16.0.0-beta02 - [feature] Added [`getAppCheckToken()`](), [`AppCheckTokenListener`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.AppCheckListener), - and associated setters and removers for developers to request and observe changes to the - [app_check] token. + and associated setters and removers for developers to request and observe + changes to the [app_check] token. # 16.0.0-beta01 -- [feature] Initial beta release of the [app_check] SDK with abuse reduction features. - +- [feature] Initial beta release of the [app_check] SDK with abuse reduction + features. diff --git a/build.gradle.kts b/build.gradle.kts index 6ff7b3d66d7..881002df7c9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -64,7 +64,13 @@ fun Project.applySpotless() { } flexmark { target("src/**/*.md", "*.md", "docs/**/*.md") - targetExclude("**/third_party/**", "src/test/resources/**", "release_report.md") + targetExclude( + "**/third_party/**", + "src/test/resources/**", + "release_report.md", + "**/CHANGELOG.md", + "CHANGELOG.md" + ) flexmark("0.64.8") } } @@ -72,6 +78,49 @@ fun Project.applySpotless() { applySpotless() +val formatChangelogs by + tasks.registering { + doLast { + fileTree(projectDir) { + include("**/CHANGELOG.md") + exclude("**/third_party/**", "**/test/resources/**", "build/**", "*-gradle/**") + } + .forEach { file -> + val content = file.readText() + val formatted = com.google.firebase.gradle.plugins.ChangelogFormatter.format(content) + if (content != formatted) { + file.writeText(formatted) + } + } + } + } + +tasks.named("spotlessApply") { dependsOn(formatChangelogs) } + +val checkChangelogs by + tasks.registering { + doLast { + var failed = false + fileTree(projectDir) { + include("**/CHANGELOG.md") + exclude("**/third_party/**", "**/test/resources/**", "build/**", "*-gradle/**") + } + .forEach { file -> + val content = file.readText() + val formatted = com.google.firebase.gradle.plugins.ChangelogFormatter.format(content) + if (content != formatted) { + println( + "${file.absolutePath} is not formatted properly. Run ./gradlew formatChangelogs" + ) + failed = true + } + } + if (failed) throw GradleException("Changelogs formatting check failed") + } + } + +tasks.named("spotlessCheck") { dependsOn(checkChangelogs) } + configure(subprojects) { applySpotless() } tasks.named("clean") { delete(rootProject.layout.buildDirectory) } diff --git a/encoders/firebase-decoders-json/CHANGELOG.md b/encoders/firebase-decoders-json/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-decoders-json/CHANGELOG.md +++ b/encoders/firebase-decoders-json/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders-json/CHANGELOG.md b/encoders/firebase-encoders-json/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders-json/CHANGELOG.md +++ b/encoders/firebase-encoders-json/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders-processor/CHANGELOG.md b/encoders/firebase-encoders-processor/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders-processor/CHANGELOG.md +++ b/encoders/firebase-encoders-processor/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders-proto/CHANGELOG.md b/encoders/firebase-encoders-proto/CHANGELOG.md index 2a56f05cb97..d43e9b27315 100644 --- a/encoders/firebase-encoders-proto/CHANGELOG.md +++ b/encoders/firebase-encoders-proto/CHANGELOG.md @@ -2,4 +2,3 @@ - [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). - diff --git a/encoders/firebase-encoders-reflective/CHANGELOG.md b/encoders/firebase-encoders-reflective/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders-reflective/CHANGELOG.md +++ b/encoders/firebase-encoders-reflective/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/firebase-encoders/CHANGELOG.md b/encoders/firebase-encoders/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/firebase-encoders/CHANGELOG.md +++ b/encoders/firebase-encoders/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/encoders/protoc-gen-firebase-encoders/CHANGELOG.md b/encoders/protoc-gen-firebase-encoders/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/encoders/protoc-gen-firebase-encoders/CHANGELOG.md +++ b/encoders/protoc-gen-firebase-encoders/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/firebase-abt/CHANGELOG.md b/firebase-abt/CHANGELOG.md index 37ecf139a20..2593d12549c 100644 --- a/firebase-abt/CHANGELOG.md +++ b/firebase-abt/CHANGELOG.md @@ -6,11 +6,12 @@ # 23.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 - 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). +- [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). # 22.0.0 @@ -26,18 +27,21 @@ # 21.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 21.0.2 -- [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). # 21.0.1 -- [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. +- [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. # 21.0.0 @@ -46,13 +50,14 @@ # 20.0.0 -- [removed] Removed the protocol buffer dependency and moved relevant protocol buffer definitions to - [inappmessaging_longer]. If you use [ab_testing] with [inappmessaging], you'll need to update to - [inappmessaging] v19.1.2 or later. +- [removed] Removed the protocol buffer dependency and moved relevant protocol + buffer definitions to [inappmessaging_longer]. If you use [ab_testing] with + [inappmessaging], you'll need to update to [inappmessaging] v19.1.2 or later. # 19.0.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 17.1.1 @@ -62,4 +67,3 @@ # 17.1.0 - [changed] Updated API to support the latest [remote_config] update. - diff --git a/firebase-annotations/CHANGELOG.md b/firebase-annotations/CHANGELOG.md index b0ed2d3803b..d9e88d812de 100644 --- a/firebase-annotations/CHANGELOG.md +++ b/firebase-annotations/CHANGELOG.md @@ -1,4 +1,4 @@ # Unreleased -- [changed] Hid Executors from public API, as they are intended to be internal anyhow. - +- [changed] Hid Executors from public API, as they are intended to be internal + anyhow. diff --git a/firebase-appdistribution-api/CHANGELOG.md b/firebase-appdistribution-api/CHANGELOG.md index af7943ab2f0..fbacd78361f 100644 --- a/firebase-appdistribution-api/CHANGELOG.md +++ b/firebase-appdistribution-api/CHANGELOG.md @@ -18,15 +18,17 @@ # 16.0.0-beta16 -- [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). +- [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). # 16.0.0-beta15 -- [unchanged] Updated to accommodate the release of the updated [appdistro] library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + library. ## Kotlin @@ -35,7 +37,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta14 -- [unchanged] Updated to accommodate the release of the updated [appdistro] library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + library. ## Kotlin @@ -53,7 +56,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta12 -- [unchanged] Updated to accommodate the release of the updated [appdistro] library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + library. ## Kotlin @@ -64,15 +68,18 @@ library. The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-appdistribution-api-ktx` to - `com.google.firebase:firebase-appdistribution-api` under the `com.google.firebase.appdistribution` - 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-appdistribution-api-ktx` have been - added to `com.google.firebase:firebase-appdistribution-api` under the - `com.google.firebase.appdistribution` package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-appdistribution-api-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) + `com.google.firebase:firebase-appdistribution-api` under the + `com.google.firebase.appdistribution` 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-appdistribution-api-ktx` have been added to + `com.google.firebase:firebase-appdistribution-api` under the + `com.google.firebase.appdistribution` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-appdistribution-api-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 @@ -81,7 +88,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta09 -- [feature] Improved development mode to allow all API calls to be made without having to sign in. +- [feature] Improved development mode to allow all API calls to be made without + having to sign in. ## Kotlin @@ -90,8 +98,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta08 -- [fixed] Fixed an issue where a crash happened whenever a feedback notification was shown on - devices running Android 4.4 and lower. +- [fixed] Fixed an issue where a crash happened whenever a feedback + notification was shown on devices running Android 4.4 and lower. ## Kotlin @@ -100,7 +108,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta07 -- [feature] Added support for testers to attach JPEG screenshots to their feedback. +- [feature] Added support for testers to attach JPEG screenshots to their + feedback. ## Kotlin @@ -110,9 +119,10 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta06 - [feature] Added support for in-app tester feedback. To learn more, see - [Collect feedback from testers](/docs/app-distribution/collect-feedback-from-testers?platform=android). -- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` using - `addOnProgressListener()` would receive updates. + [Collect feedback from + testers](/docs/app-distribution/collect-feedback-from-testers?platform=android). +- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` + using `addOnProgressListener()` would receive updates. ## Kotlin @@ -121,23 +131,26 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta05 -- [unchanged] Updated to accommodate the release of the updated [appdistro] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-appdistribution-api` 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-appdistribution-api-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. + .external} to `firebase-appdistribution-api-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. # 16.0.0-beta04 -- [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 @@ -147,17 +160,19 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta03 - [feature] The [appdistro] SDK has been split into two libraries: - - `firebase-appdistribution-api` - The API-only library
This new API-only library is - functional only when the full [appdistro] SDK implementation (`firebase-appdistribution`) is - present. `firebase-appdistribution-api` can be included in all - [build variants](https://developer.android.com/studio/build/build-variants){: .external}. + - `firebase-appdistribution-api` - The API-only library
This new API-only +library is functional only when the full [appdistro] SDK implementation +(`firebase-appdistribution`) is present. `firebase-appdistribution-api` can be +included in all [build +variants](https://developer.android.com/studio/build/build-variants){: +.external}. - - `firebase-appdistribution` - The full SDK implementation
This full SDK implementation is - optional and should only be included in pre-release builds. + - `firebase-appdistribution` - The full SDK implementation
This full SDK +implementation is optional and should only be included in pre-release builds. - Visit the documentation to learn how to - [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to your - Android app. +Visit the documentation to learn how to [add these +SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to +your Android app. ## Kotlin @@ -166,4 +181,3 @@ has been moved to the new API-only library: `firebase-appdistribution-api-ktx`. This new Kotlin extensions library transitively includes the `firebase-appdistribution-api` library. The Kotlin extensions library has no additional updates. - diff --git a/firebase-appdistribution/CHANGELOG.md b/firebase-appdistribution/CHANGELOG.md index 69216cae741..be576df966b 100644 --- a/firebase-appdistribution/CHANGELOG.md +++ b/firebase-appdistribution/CHANGELOG.md @@ -6,7 +6,8 @@ # 16.0.0-beta19 -- [fixed] Fixed failing APK downloads due to an invalid file provider authority [#8136] +- [fixed] Fixed failing APK downloads due to an invalid file provider authority + [#8136] # 16.0.0-beta18 @@ -18,7 +19,8 @@ # 16.0.0-beta16 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or +higher. # 16.0.0-beta15 @@ -42,54 +44,61 @@ # 16.0.0-beta09 -- [feature] Improved development mode to allow all API calls to be made without having to sign in. +- [feature] Improved development mode to allow all API calls to be made without + having to sign in. # 16.0.0-beta08 -- [fixed] Fixed an issue where a crash happened whenever a feedback notification was shown on - devices running Android 4.4 and lower. +- [fixed] Fixed an issue where a crash happened whenever a feedback + notification was shown on devices running Android 4.4 and lower. # 16.0.0-beta07 -- [feature] Added support for testers to attach JPEG screenshots to their feedback. +- [feature] Added support for testers to attach JPEG screenshots to their + feedback. # 16.0.0-beta06 - [feature] Added support for in-app tester feedback. To learn more, see - [Collect feedback from testers](/docs/app-distribution/collect-feedback-from-testers). -- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` using - `addOnProgressListener()` would receive updates. + [Collect feedback from + testers](/docs/app-distribution/collect-feedback-from-testers). +- [fixed] Fixed a bug where only the last listener added to an `UpdateTask` + using `addOnProgressListener()` would receive updates. # 16.0.0-beta05 -- [unchanged] Updated to accommodate the release of the updated [appdistro] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [appdistro] + Kotlin extensions library. # 16.0.0-beta03 - [feature] The [appdistro] SDK has been split into two libraries: - - `firebase-appdistribution-api` - The API-only library
This new API-only library is - functional only when the full [appdistro] SDK implementation (`firebase-appdistribution`) is - present. `firebase-appdistribution-api` can be included in all - [build variants](https://developer.android.com/studio/build/build-variants){: .external}. + - `firebase-appdistribution-api` - The API-only library
This new API-only +library is functional only when the full [appdistro] SDK implementation +(`firebase-appdistribution`) is present. `firebase-appdistribution-api` can be +included in all [build +variants](https://developer.android.com/studio/build/build-variants){: +.external}. - - `firebase-appdistribution` - The full SDK implementation
This full SDK implementation is - optional and should only be included in pre-release builds. + - `firebase-appdistribution` - The full SDK implementation
This full SDK +implementation is optional and should only be included in pre-release builds. - Visit the documentation to learn how to - [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to your - Android app. +Visit the documentation to learn how to [add these +SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to +your Android app. ## Kotlin -- [removed] The Kotlin extensions library `firebase-appdistribution-ktx` has been removed. All its - functionality has been moved to the new API-only library: `firebase-appdistribution-api-ktx`. +- [removed] The Kotlin extensions library `firebase-appdistribution-ktx` has + been removed. All its functionality has been moved to the new API-only + library: `firebase-appdistribution-api-ktx`. # 16.0.0-beta02 -- [fixed] Fixed a bug that prevented testers from signing in when the app had an underscore in the - package name. -- [fixed] Fixed a UI bug where the APK download notification displayed the incorrect error message. +- [fixed] Fixed a bug that prevented testers from signing in when the app had + an underscore in the package name. +- [fixed] Fixed a UI bug where the APK download notification displayed the + incorrect error message. - [changed] Internal improvements to tests. ## Kotlin @@ -99,9 +108,10 @@ The Kotlin extensions library has no additional updates. # 16.0.0-beta01 -- [feature] The [appdistro] Android SDK is now available in beta. You can use this SDK to notify - testers in-app when a new test build is available. To learn more, visit the - [[appdistro] reference documentation](/docs/reference/android/com/google/firebase/appdistribution/package-summary). +- [feature] The [appdistro] Android SDK is now available in beta. You can use + this SDK to notify testers in-app when a new test build is available. To + learn more, visit the [[appdistro] reference + documentation](/docs/reference/android/com/google/firebase/appdistribution/package-summary). ## Kotlin @@ -109,4 +119,3 @@ The [appdistro] Android library with Kotlin extensions is now available in beta. extensions library transitively includes the base `firebase-app-distribution` library. To learn more, visit the [[appdistro] KTX reference documentation](/docs/reference/kotlin/com/google/firebase/appdistribution/ktx/package-summary). - diff --git a/firebase-common/CHANGELOG.md b/firebase-common/CHANGELOG.md index adef8ec4d7c..2e49c2fe742 100644 --- a/firebase-common/CHANGELOG.md +++ b/firebase-common/CHANGELOG.md @@ -2,14 +2,15 @@ # 22.2.0 -- [changed] Remvode support for reading the `recaptcha_site_key` value from the `google-services.json` - file. (#8457) +- [changed] Remvode support for reading the `recaptcha_site_key` value from the + `google-services.json` file. (#8457) # 22.1.0 -- [feature] Added support for reading the `recaptcha_site_key` value from the `google-services.json` - file. (#8216) -- [fixed] Resolved a thread deadlock in HeartBeatInfoStorage when using Jetpack DataStore background executors.(#8182) +- [feature] Added support for reading the `recaptcha_site_key` value from the + `google-services.json` file. (#8216) +- [fixed] Resolved a thread deadlock in HeartBeatInfoStorage when using Jetpack + DataStore background executors.(#8182) # 22.0.1 @@ -17,32 +18,39 @@ # 22.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 - 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). +- [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). # 21.0.0 - [fixed] Correctly declare dependency on firebase-components, issue #5732 - [changed] Added extension method `Random.nextAlphanumericString()` (PR #5818) - [changed] Migrated internal `SharedPreferences` usages to `DataStore`. - ([GitHub PR #6801](https://github.com/firebase/firebase-android-sdk/pull/6801){ .external}) + ([GitHub PR + #6801](https://github.com/firebase/firebase-android-sdk/pull/6801){ + .external}) # 20.4.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-common-ktx` to - `com.google.firebase:firebase-common` under the `com.google.firebase` package. For details, see - the [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-common-ktx` to + `com.google.firebase:firebase-common` under the `com.google.firebase` + package. For details, see the [FAQ about this + initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin -- [deprecated] All the APIs from `com.google.firebase:firebase-common-ktx` have been added to - `com.google.firebase:firebase-common` under the `com.google.firebase package`, and all the Kotlin - extensions (KTX) APIs in `com.google.firebase:firebase-common-ktx` are now deprecated. As early as - April 2024, we'll no longer release KTX modules. For details, see the FAQ about this initiative. - [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) +- [deprecated] All the APIs from `com.google.firebase:firebase-common-ktx` have + been added to `com.google.firebase:firebase-common` under the + `com.google.firebase package`, and all the Kotlin extensions (KTX) APIs in + `com.google.firebase:firebase-common-ktx` are now deprecated. As early as + April 2024, we'll no longer release KTX modules. For details, see the FAQ + about this initiative. [FAQ about this + initiative](https://firebase.google.com/docs/android/kotlin-migration) # 20.3.3 @@ -52,4 +60,3 @@ The Kotlin extensions library transitively includes the updated `firebase-common` library. The Kotlin extensions library has no additional updates - diff --git a/firebase-components/CHANGELOG.md b/firebase-components/CHANGELOG.md index e935394241e..10c50f6962f 100644 --- a/firebase-components/CHANGELOG.md +++ b/firebase-components/CHANGELOG.md @@ -2,15 +2,18 @@ # 19.0.1 -- [fixed] fixed typo in message logged when a class is not found during component discovery. +- [fixed] fixed typo in message logged when a class is not found during + component discovery. # 19.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or +higher. # 18.0.1 -- [fixed] updated proguard rules to keep component registrar working with newer proguard versions. +- [fixed] updated proguard rules to keep component registrar working with newer + proguard versions. ## Kotlin @@ -20,6 +23,5 @@ Kotlin extensions library has no additional updates. # 17.1.2 - [changed] Internal changes to ensure only one interface is provided for - kotlinx.coroutines.CoroutineDispatcher interfaces when both firebase-common and - firebase-common-ktx provide them. - + kotlinx.coroutines.CoroutineDispatcher interfaces when both firebase-common + and firebase-common-ktx provide them. diff --git a/firebase-components/firebase-dynamic-module-support/CHANGELOG.md b/firebase-components/firebase-dynamic-module-support/CHANGELOG.md index aa4e0d27a23..a4ca662c16f 100644 --- a/firebase-components/firebase-dynamic-module-support/CHANGELOG.md +++ b/firebase-components/firebase-dynamic-module-support/CHANGELOG.md @@ -2,9 +2,10 @@ # 16.0.0-beta04 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or +higher. # 16.0.0-beta03 -- [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). diff --git a/firebase-config-interop/CHANGELOG.md b/firebase-config-interop/CHANGELOG.md index 85616227716..54976cbf39d 100644 --- a/firebase-config-interop/CHANGELOG.md +++ b/firebase-config-interop/CHANGELOG.md @@ -5,4 +5,3 @@ # 16.0.0 - [feature] Initial release. - diff --git a/firebase-config/CHANGELOG.md b/firebase-config/CHANGELOG.md index ef1e98f1ecf..d23b8e4abee 100644 --- a/firebase-config/CHANGELOG.md +++ b/firebase-config/CHANGELOG.md @@ -2,9 +2,9 @@ # 23.1.0 -- [fixed] Remote Config Realtime updates now trigger when a parameter's experiment - or variant assignment changes, ensuring more accurate A/B test analytics and - consistent user experiences. #8002 +- [fixed] Remote Config Realtime updates now trigger when a parameter's + experiment or variant assignment changes, ensuring more accurate A/B test + analytics and consistent user experiences. #8002 # 23.0.1 @@ -12,20 +12,23 @@ # 23.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. -- [changed] This update introduces improvements to how the SDK handles real-time requests when a - Firebase project has exceeded its available quota for real-time services. Released in anticipation - of future quota enforcement, this change is designed to fetch the latest template even when the - quota is exhausted. -- [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). +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or +higher. +- [changed] This update introduces improvements to how the SDK handles + real-time requests when a Firebase project has exceeded its available quota + for real-time services. Released in anticipation of future quota enforcement, + this change is designed to fetch the latest template even when the quota is + exhausted. +- [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). # 22.1.2 -- [fixed] Fixed `NetworkOnMainThreadException` on Android versions below 8 by disconnecting - `HttpURLConnection` only on API levels 26 and higher. GitHub Issue [#6934] +- [fixed] Fixed `NetworkOnMainThreadException` on Android versions below 8 by + disconnecting `HttpURLConnection` only on API levels 26 and higher. GitHub + Issue [#6934] ## Kotlin @@ -34,8 +37,8 @@ Kotlin extensions library has no additional updates. # 22.1.1 -- [fixed] Fixed an issue where the connection to the real-time Remote Config backend could remain - open in the background. +- [fixed] Fixed an issue where the connection to the real-time Remote Config + backend could remain open in the background. ## Kotlin @@ -44,8 +47,9 @@ Kotlin extensions library has no additional updates. # 22.1.0 -- [feature] Added support for custom signal targeting in Remote Config. Use `setCustomSignals` API - for setting custom signals and use them to build custom targeting conditions in Remote Config. +- [feature] Added support for custom signal targeting in Remote Config. Use + `setCustomSignals` API for setting custom signals and use them to build + custom targeting conditions in Remote Config. ## Kotlin @@ -73,15 +77,16 @@ Kotlin extensions library has no additional updates. # 21.6.3 -- [fixed] Fixed a bug that could cause a crash if the app was backgrounded while it was listening - for real-time Remote Config updates. For more information, see #5751 +- [fixed] Fixed a bug that could cause a crash if the app was backgrounded + while it was listening for real-time Remote Config updates. For more + information, see #5751 # 21.6.2 -- [fixed] Fixed an issue that could cause [remote_config] personalizations to be logged early in - specific cases. -- [fixed] Fixed an issue where the connection to the real-time Remote Config backend could remain - open in the background. +- [fixed] Fixed an issue that could cause [remote_config] personalizations to + be logged early in specific cases. +- [fixed] Fixed an issue where the connection to the real-time Remote Config + backend could remain open in the background. ## Kotlin @@ -99,19 +104,23 @@ Kotlin extensions library has no additional updates. # 21.6.0 -- [changed] Added support for other Firebase products to integrate with [remote_config]. +- [changed] Added support for other Firebase products to integrate with + [remote_config]. # 21.5.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-config-ktx` to - `com.google.firebase:firebase-config` under the `com.google.firebase.remoteconfig` 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-config-ktx` have been added to - `com.google.firebase:firebase-config` under the `com.google.firebase.remoteconfig` package, and - all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-config-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-config-ktx` to + `com.google.firebase:firebase-config` under the + `com.google.firebase.remoteconfig` 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-config-ktx` have + been added to `com.google.firebase:firebase-config` under the + `com.google.firebase.remoteconfig` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-config-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 @@ -129,8 +138,8 @@ Kotlin extensions library has no additional updates. # 21.4.0 -- [unchanged] Updated to accommodate the release of the updated [remote_config] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [remote_config] + Kotlin extensions library. ## Kotlin @@ -143,8 +152,9 @@ Kotlin extensions library has the following additional updates. # 21.3.0 -- [feature] Added support for real-time config updates. To learn more, see - [Get started with [firebase_remote_config]](/docs/remote-config/get-started?platform=android#add-real-time-listener). +- [feature] Added support for real-time config updates. To learn more, see [Get + started with + [firebase_remote_config]](/docs/remote-config/get-started?platform=android#add-real-time-listener). ## Kotlin @@ -162,23 +172,26 @@ Kotlin extensions library has no additional updates. # 21.2.0 -- [unchanged] Updated to accommodate the release of the updated [remote_config] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [remote_config] + Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-config` 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-config-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. + .external} to `firebase-config-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. # 21.1.2 -- [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 @@ -187,8 +200,9 @@ Kotlin extensions library has no additional updates. # 21.1.1 -- [fixed] Fixed a bug that caused HTTP errors in some locales. For more information, see - GitHub Issue #3757 ## Kotlin @@ -215,10 +229,11 @@ Kotlin extensions library has no additional updates. # 21.0.2 -- [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. +- [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 @@ -227,7 +242,8 @@ Kotlin extensions library has no additional updates. # 21.0.1 -- [fixed] Fixed a bug in the initialization of [remote_config] with a non-primary Firebase app. +- [fixed] Fixed a bug in the initialization of [remote_config] with a + non-primary Firebase app. ## Kotlin @@ -255,7 +271,8 @@ Kotlin extensions library has no additional updates. # 20.0.3 -- [changed] Standardize support for other Firebase products that integrate with [remote_config]. +- [changed] Standardize support for other Firebase products that integrate with + [remote_config]. ## Kotlin @@ -264,8 +281,8 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [fixed] Fixed an issue that was causing [remote_config] to return the static default value even if - a remote value was defined. (#2186) +- [fixed] Fixed an issue that was causing [remote_config] to return the static + default value even if a remote value was defined. (#2186) ## Kotlin @@ -274,7 +291,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [changed] Added support for other Firebase products to integrate with [remote_config]. +- [changed] Added support for other Firebase products to integrate with + [remote_config]. ## Kotlin @@ -283,28 +301,32 @@ Kotlin extensions library has no additional updates. # 20.0.0 -- [removed] Removed the protocol buffer dependency. Also, removed support for configs saved on - device using the legacy protocol buffer format (the SDK stopped using this legacy format starting - with [remote_config] v16.3.0). -- [removed] Removed the deprecated synchronous method `FirebaseRemoteConfig.activateFetched()`. Use - the asynchronous +- [removed] Removed the protocol buffer dependency. Also, removed support for + configs saved on device using the legacy protocol buffer format (the SDK + stopped using this legacy format starting with [remote_config] v16.3.0). +- [removed] Removed the deprecated synchronous method + `FirebaseRemoteConfig.activateFetched()`. Use the asynchronous [`FirebaseRemoteConfig.activate()`]() instead. -- [removed] Removed the deprecated synchronous methods `FirebaseRemoteConfig.setDefaults(int)` and +- [removed] Removed the deprecated synchronous methods + `FirebaseRemoteConfig.setDefaults(int)` and `FirebaseRemoteConfig.setDefaults(Map)`. Use the asynchronous [`FirebaseRemoteConfig.setDefaultsAsync(int)`]() and [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](>) instead. - [removed] Removed the deprecated synchronous method - `FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)`. Use the asynchronous + `FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)`. Use + the asynchronous [`FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)`]() instead. -- [removed] Removed the deprecated method `FirebaseRemoteConfig.getByteArray(String)`. Use +- [removed] Removed the deprecated method + `FirebaseRemoteConfig.getByteArray(String)`. Use [`FirebaseRemoteConfig.getString(String)`]() instead. -- [removed] Removed the deprecated methods `FirebaseRemoteConfigSettings.isDeveloperModeEnabled()` - and `FirebaseRemoteConfigSettings.Builder.setDeveloperModeEnabled(boolean)`. Use +- [removed] Removed the deprecated methods + `FirebaseRemoteConfigSettings.isDeveloperModeEnabled()` and + `FirebaseRemoteConfigSettings.Builder.setDeveloperModeEnabled(boolean)`. Use [`FirebaseRemoteConfigSettings#getMinimumFetchIntervalInSeconds()`]() and [`FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)`]() @@ -317,14 +339,16 @@ Kotlin extensions library has no additional updates. # 19.2.0 -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. - - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. -- [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. +{% include +"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" +%} +- [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 @@ -333,8 +357,9 @@ Kotlin extensions library has no additional updates. # 19.1.4 -- [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. +- [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. ## Kotlin @@ -390,8 +415,9 @@ Kotlin extensions library has no additional updates. # 19.0.4 -- [fixed] Resolved [known issue](//github.com/firebase/firebase-android-sdk/issues/973) where - network calls may fail on devices using API 19 and earlier. +- [fixed] Resolved [known + issue](//github.com/firebase/firebase-android-sdk/issues/973) where network + calls may fail on devices using API 19 and earlier. ## Kotlin @@ -400,14 +426,17 @@ Kotlin extensions library has no additional updates. # 19.0.3 -- [fixed] Resolved [known issue](https://github.com/firebase/firebase-android-sdk/issues/787) where - the [firebase_remote_config] SDK threw an error when Android - [StrictMode](https://developer.android.com/reference/android/os/StrictMode) was turned on. +- [fixed] Resolved [known + issue](https://github.com/firebase/firebase-android-sdk/issues/787) where the + [firebase_remote_config] SDK threw an error when Android + [StrictMode](https://developer.android.com/reference/android/os/StrictMode) + was turned on. - [fixed] Resolved issue where setting Byte Arrays via [`FirebaseRemoteConfig.setDefaultsAsync(int)`](), [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](>) - and their synchronous counterparts would cause `getByteArray` to return an object reference - instead of the Byte Array. Byte Arrays set via the Firebase console were unaffected by this bug. + and their synchronous counterparts would cause `getByteArray` to return an + object reference instead of the Byte Array. Byte Arrays set via the Firebase + console were unaffected by this bug. ## Kotlin @@ -416,24 +445,26 @@ Kotlin extensions library has no additional updates. # 19.0.2 -- [unchanged] Updated to accommodate the release of the [remote_config] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the [remote_config] Kotlin + extensions library. ## Kotlin -- [feature] The beta release of a [remote_config] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-config` library. - To learn more, visit the - [[remote_config] KTX documentation](/docs/reference/kotlin/com/google/firebase/remoteconfig/ktx/package-summary). +- [feature] The beta release of a [remote_config] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-config` library. To learn more, visit the + [[remote_config] KTX + documentation](/docs/reference/kotlin/com/google/firebase/remoteconfig/ktx/package-summary). # 19.0.1 -- [fixed] Resolved known issue where certain unicode characters were not encoded correctly. The - issue was introduced in v19.0.0. +- [fixed] Resolved known issue where certain unicode characters were not + encoded correctly. The issue was introduced in v19.0.0. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 17.0.0 @@ -444,8 +475,8 @@ Kotlin extensions library has no additional updates. and [`FirebaseRemoteConfigClientException`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigClientException) to provide more nuanced error reporting. -- [changed] Updated all "cache expiration" references to "minimum fetch interval" and "cache" - references to "local storage". +- [changed] Updated all "cache expiration" references to "minimum fetch + interval" and "cache" references to "local storage". - [deprecated] Deprecated developer mode. Use [`FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(0L)`]() instead. @@ -471,22 +502,23 @@ Kotlin extensions library has no additional updates. [`FirebaseRemoteConfig.getInstance(FirebaseApp)`]() to retrieve a singleton instance of [`FirebaseRemoteConfig`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig) - for the given [`FirebaseApp`](/docs/reference/android/com/google/firebase/FirebaseApp). + for the given + [`FirebaseApp`](/docs/reference/android/com/google/firebase/FirebaseApp). - [feature] Added a method that fetches configs and activates them: [`FirebaseRemoteConfig.fetchAndActivate()`](). -- [feature] Network connection timeout for fetch requests is now customizable. To set the network - timeout, use +- [feature] Network connection timeout for fetch requests is now customizable. + To set the network timeout, use [`FirebaseRemoteConfigSettings.Builder.setFetchTimeoutInSeconds(long)`](). -- [feature] The default minimum fetch interval is now customizable. To set the default minimum fetch - interval, use +- [feature] The default minimum fetch interval is now customizable. To set the + default minimum fetch interval, use [`FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)`](). - [feature] Added a way to get all activated configs as a Java `Map`: [`FirebaseRemoteConfig.getAll()`](). - [feature] Added the ability to reset a Firebase Remote Config instance: [`FirebaseRemoteConfig.reset()`](). -- [feature] Added a way to determine if the Firebase Remote Config instance has finished - initializing. To get a task that will complete when the Firebase Remote Config instance is - finished initializing, use +- [feature] Added a way to determine if the Firebase Remote Config instance has + finished initializing. To get a task that will complete when the Firebase + Remote Config instance is finished initializing, use [`FirebaseRemoteConfig.ensureInitialized()`](). - [feature] Added an asynchronous way to activate configs: [`FirebaseRemoteConfig.activate()`](). @@ -515,30 +547,34 @@ Kotlin extensions library has no additional updates. # 16.4.1 - [changed] The SDK now enforces Android API Key restrictions. -- [fixed] Resolved known issue where the local cache was not honored even if it had not expired. The - issue was introduced in version 16.3.0. +- [fixed] Resolved known issue where the local cache was not honored even if it + had not expired. The issue was introduced in version 16.3.0. # 16.4.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 16.3.0 -- [changed] The [firebase_remote_config] SDK requires the [firebase_remote_config] REST API. For - Firebase projects created before March 7, 2018, you must manually enable the REST API. For more - information, see our - [[remote_config] REST API user guide](https://firebase.google.com/docs/remote-config/use-config-rest#before_you_begin_enable_the_rest_api). -- [changed] Refactored the implementation of [remote_config] to improve SDK stability and speed, and - to remove the Google Play Services dependency. +- [changed] The [firebase_remote_config] SDK requires the + [firebase_remote_config] REST API. For Firebase projects created before March + 7, 2018, you must manually enable the REST API. For more information, see our + [[remote_config] REST API user + guide](https://firebase.google.com/docs/remote-config/use-config-rest#before_you_begin_enable_the_rest_api). +- [changed] Refactored the implementation of [remote_config] to improve SDK + stability and speed, and to remove the Google Play Services dependency. - [changed] Improved error logs and exception messages. -- [changed] Updated the Android documentation to reflect that [remote_config] uses `Locale` to - retrieve location information, similar to iOS's use of `countryCode`. +- [changed] Updated the Android documentation to reflect that [remote_config] + uses `Locale` to retrieve location information, similar to iOS's use of + `countryCode`. # 16.1.3 -- [fixed] Fixed an issue where [remote_config] experiments were not collecting results. +- [fixed] Fixed an issue where [remote_config] experiments were not collecting + results. # 16.1.0 -- [fixed] Bug fixes and internal improvements to support Firebase Performance Monitoring features. - +- [fixed] Bug fixes and internal improvements to support Firebase Performance + Monitoring features. diff --git a/firebase-crashlytics-ndk/CHANGELOG.md b/firebase-crashlytics-ndk/CHANGELOG.md index 3cfdbdd06a0..d7952a79ed2 100644 --- a/firebase-crashlytics-ndk/CHANGELOG.md +++ b/firebase-crashlytics-ndk/CHANGELOG.md @@ -10,8 +10,8 @@ # 20.0.5 -- [fixed] Fixed a runtime crash that could occur in minified native apps when using the Crashlytics - C++ header (#7906) +- [fixed] Fixed a runtime crash that could occur in minified native apps when + using the Crashlytics C++ header (#7906) # 20.0.4 @@ -31,7 +31,8 @@ # 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 @@ -119,8 +120,8 @@ # 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. - [changed] Updated `firebase-crashlytics` dependency to v18.3.5. # 18.3.4 @@ -140,7 +141,8 @@ # 18.3.2 -- [fixed] Fixed an [issue](https://github.com/firebase/firebase-android-sdk/issues/4313){: +- [fixed] Fixed an + [issue](https://github.com/firebase/firebase-android-sdk/issues/4313){: .external} preventing native crashes from being reported for Android API 29+. # 18.3.1 @@ -161,7 +163,8 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 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). # 18.2.12 @@ -189,36 +192,40 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 18.2.6 -- [changed] Updated internal Crashpad version to commit `281ba7`. With this change, disabling tagged - pointers is no longer required, so the following can be removed from your manifest's `application` - tag: `android:allowNativeHeapPointerTagging=false`. +- [changed] Updated internal Crashpad version to commit `281ba7`. With this + change, disabling tagged pointers is no longer required, so the following can + be removed from your manifest's `application` tag: + `android:allowNativeHeapPointerTagging=false`. - [changed] Updated `firebase-crashlytics` dependency to v18.2.6. # 18.2.5 -- [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation - and removal of intermediate [crashlytics] files. +- [changed] Internal improvements to [crashlytics] file management, to ensure + consistent creation and removal of intermediate [crashlytics] files. - [changed] Updated `firebase-crashlytics` dependency to v18.2.5. # 18.2.4 - [changed] Added an obfuscation exclusion for - `com.google.firebase.crashlytics.ndk.FirebaseCrashlyticsNdk` to the Proguard configuration for - this AAR, to avoid potential reflection errors when obfuscating NDK-enabled apps. + `com.google.firebase.crashlytics.ndk.FirebaseCrashlyticsNdk` to the Proguard + configuration for this AAR, to avoid potential reflection errors when + obfuscating NDK-enabled apps. - [changed] Updated `firebase-crashlytics` dependency to v18.2.4. # 18.2.3 -- [changed] Internal changes to support upcoming Unity crash reporting improvements. +- [changed] Internal changes to support upcoming Unity crash reporting + improvements. - [changed] Updated `firebase-crashlytics` dependency to v18.2.3. # 18.2.1 -- [fixed] Improved support for NDK crash reporting when using - [Play Feature Delivery](/docs/android/learn-more#dynamic-feature-modules). Previously, - `firebase-crashlytics-ndk` needed to be a dependency of the app module to consistently report - native crashes for all supported Android versions. [crashlytics] will now report native crashes - when used as a dependency of a feature module. +- [fixed] Improved support for NDK crash reporting when using [Play Feature + Delivery](/docs/android/learn-more#dynamic-feature-modules). Previously, + `firebase-crashlytics-ndk` needed to be a dependency of the app module to + consistently report native crashes for all supported Android versions. + [crashlytics] will now report native crashes when used as a dependency of a + feature module. - [changed] Updated `firebase-crashlytics` dependency to v18.2.1. # 18.2.0 @@ -231,8 +238,9 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 18.0.1 -- [changed] Updated `firebase-crashlytics` dependency to v18.0.1, which fixes a bug that could cause - excessive disk usage from NDK crash report files when crash reporting is disabled. +- [changed] Updated `firebase-crashlytics` dependency to v18.0.1, which fixes a + bug that could cause excessive disk usage from NDK crash report files when + crash reporting is disabled. # 18.0.0 @@ -258,10 +266,10 @@ Note: To ensure proper symbolication of NDK crashes, you must use the [crashlytics] NDK SDK and above. - [fixed] Upgraded underlying native crash reporting library to - [Crashpad](//crashpad.chromium.org){: .external}. This addresses emerging issues with capturing - certain types of native crashes on Android 10+ using - [Breakpad](//chromium.googlesource.com/breakpad){: .external}. - ([Github Issue #1678](//github.com/firebase/firebase-android-sdk/issues/1678){: .external}) + [Crashpad](//crashpad.chromium.org){: .external}. This addresses emerging + issues with capturing certain types of native crashes on Android 10+ using + [Breakpad](//chromium.googlesource.com/breakpad){: .external}. ([Github Issue + #1678](//github.com/firebase/firebase-android-sdk/issues/1678){: .external}) # 17.2.2 @@ -270,7 +278,8 @@ the [crashlytics] NDK SDK and above. # 17.2.1 - [fixed] Fixed signal handler to properly release storage on app exit. - ([Github Issue #1749](https://github.com/firebase/firebase-android-sdk/issues/1749)) + ([Github Issue + #1749](https://github.com/firebase/firebase-android-sdk/issues/1749)) - [changed] Updated `firebase-crashlytics` dependency to v17.2.1. # 17.1.1 @@ -296,11 +305,12 @@ the [crashlytics] NDK SDK and above. # 17.0.0-beta03 -- [fixed] Updated package name in `AndroidManifest.xml` to reflect new [firebase_crashlytics] NDK - package name. +- [fixed] Updated package name in `AndroidManifest.xml` to reflect new + [firebase_crashlytics] NDK package name. - [changed] Improved debug logging. - [changed] Released new `crashlytics.h` with updated C++ APIs. -- [changed] Added ProGuard rules files to avoid obfuscating public APIs called from C++. +- [changed] Added ProGuard rules files to avoid obfuscating public APIs called + from C++. # 17.0.0-beta01 @@ -328,10 +338,8 @@ the new SDK. -- [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 - [crashlytics] servers. See the - [[crashlytics] Gradle plugin documentation](/docs/crashlytics/ndk-reports-new-sdk) for more - information. - +- [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 [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 7d0cf923c5a..cb48d36c37e 100644 --- a/firebase-crashlytics/CHANGELOG.md +++ b/firebase-crashlytics/CHANGELOG.md @@ -2,18 +2,19 @@ # 20.1.0 -- [feature] Added OOM and Anomaly trigger collection for the ProfilingManager API [#8343] +- [feature] Added OOM and Anomaly trigger collection for the ProfilingManager + API [#8343] # 20.0.6 -- [fixed] Fixed race condition that caused logs from background threads to not be attached to - reports in some cases [#8034] +- [fixed] Fixed race condition that caused logs from background threads to not + be attached to reports in some cases [#8034] - [changed] Updated `firebase-sessions` dependency to v3.0.6 # 20.0.5 -- [fixed] Fixed a runtime crash that could occur in minified native apps when using the Crashlytics - C++ header (#7906) +- [fixed] Fixed a runtime crash that could occur in minified native apps when + using the Crashlytics C++ header (#7906) # 20.0.4 @@ -34,12 +35,13 @@ # 20.0.0 - [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 - 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). +`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 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 @@ -61,13 +63,15 @@ 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] 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] 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] +[CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8) [#6688] ## Kotlin @@ -85,8 +89,8 @@ 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 @@ -95,7 +99,8 @@ Kotlin extensions library has no additional updates. # 19.3.0 -- [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` extension. +- [fixed] Fixed inefficiency in the Kotlin `FirebaseCrashlytics.setCustomKeys` + extension. - [fixed] Execute failure listener outside the main thread [#6535] ## Kotlin @@ -116,18 +121,22 @@ 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. +- [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 - enabled. (GitHub [#5919](https://github.com/firebase/firebase-android-sdk/issues/5919){: +- [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 + [#4345](https://github.com/firebase/firebase-android-sdk/issues/4345){: .external}) -- [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. ## Kotlin @@ -166,7 +175,8 @@ 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] Added keep rule for shrinkage of Crashlytics build resources in + strict mode. ## Kotlin @@ -203,13 +213,15 @@ 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]. +- [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 @@ -218,15 +230,18 @@ Kotlin extensions library has no additional updates. # 18.5.0 -- [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 - `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) +- [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 `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 @@ -235,8 +250,8 @@ 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 @@ -245,7 +260,8 @@ Kotlin extensions library has no additional updates. # 18.4.2 -- [feature] Expanded `firebase-sessions` library integration to work with NDK crashes and ANRs. +- [feature] Expanded `firebase-sessions` library integration to work with NDK + crashes and ANRs. - [changed] Improved reliability when reporting memory usage. ## Kotlin @@ -259,8 +275,8 @@ Kotlin extensions library has no additional updates. # 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 @@ -269,8 +285,8 @@ 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 @@ -279,12 +295,16 @@ Kotlin extensions library has no additional updates. # 18.3.6 -- [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 - lifecycle. (GitHub [#4608](https://github.com/firebase/firebase-android-sdk/pull/4608){: - .external}, [#4786](https://github.com/firebase/firebase-android-sdk/pull/4786){: .external}) +- [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 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 @@ -293,8 +313,8 @@ 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 @@ -311,10 +331,10 @@ Kotlin extensions library has no additional updates. latest version (v18.3.5+) which contains a fix. -- [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 - versions. +- [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 versions. ## Kotlin @@ -323,7 +343,8 @@ 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 @@ -332,7 +353,8 @@ 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 @@ -341,7 +363,8 @@ 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 @@ -355,24 +378,27 @@ Warning: We're aware of an [issue](https://github.com/firebase/firebase-android- .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 - to this version, you might notice a sudden _increase_ in the number of crashes that are reported - for your app. +- [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. + .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 @@ -390,7 +416,8 @@ 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 @@ -399,11 +426,12 @@ 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 - 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. - (#3269) +- [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. (#3269) ## Kotlin @@ -412,10 +440,11 @@ Kotlin extensions library has no additional updates. # 18.2.9 -- [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. +- [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 @@ -424,7 +453,8 @@ 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 @@ -433,10 +463,10 @@ Kotlin extensions library has no additional updates. # 18.2.7 -- [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) +- [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) ## Kotlin @@ -446,7 +476,8 @@ 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 @@ -455,10 +486,11 @@ 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 - session ended. All session-specific files are now properly cleaned up. -- [changed] Internal improvements to [crashlytics] file management, to ensure consistent creation - and removal of intermediate [crashlytics] files. +- [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 and removal of intermediate [crashlytics] files. ## Kotlin @@ -467,7 +499,8 @@ 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 @@ -476,9 +509,10 @@ 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 @@ -487,8 +521,8 @@ 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 @@ -515,8 +549,9 @@ 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 @@ -527,10 +562,10 @@ Kotlin extensions library has no additional updates. - [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. + 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. ## Kotlin @@ -541,10 +576,11 @@ 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 - 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) +- [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 @@ -554,9 +590,9 @@ Kotlin extensions library has no additional updates. # 17.4.0 - [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}) + [`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 @@ -565,8 +601,8 @@ 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 @@ -577,8 +613,9 @@ Kotlin extensions library has no additional updates. - [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. - ([Github Issue #2013](//github.com/firebase/firebase-android-sdk/issues/2013){: .external}) +- [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 @@ -587,10 +624,11 @@ 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. - ([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 - [crashlytics] on multiple processes. +- [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 [crashlytics] on multiple processes. ## Kotlin @@ -599,16 +637,20 @@ 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 - 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 - `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 - indirect dependency via the Firebase Instance ID SDK. - ([Github PR #1760](//github.com/firebase/firebase-android-sdk/pull/1760){: .external}) +- [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 `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 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" %} +{% include +"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" +%} ## Kotlin @@ -617,11 +659,11 @@ Kotlin extensions library has no additional updates. # 17.1.1 -- [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}). +- [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 @@ -630,33 +672,38 @@ Kotlin extensions library has no additional updates. # 17.1.0 -- [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 - optional file is unavailable. - ([Github Issue #1559](//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614){: +- [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 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 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). +- [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]. - ([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] 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+. # 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 - (rare). -- [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. +- [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 towards a direct dependency on the [firebase_installations] + service in a future release. # 17.0.0-beta04 @@ -666,19 +713,22 @@ Kotlin extensions library has no additional updates. # 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 - 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] 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. # 17.0.0-beta02 - [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 - improved performance, we recommend that you upgrade to the latest version of the Firebase SDK for - [firebase_analytics] with this version of [firebase_crashlytics]. +- [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 @@ -705,12 +755,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 - 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 - `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. - Remove them from your app. - +- [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 `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. Remove them from your app. diff --git a/firebase-database-collection/CHANGELOG.md b/firebase-database-collection/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/firebase-database-collection/CHANGELOG.md +++ b/firebase-database-collection/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/firebase-database/CHANGELOG.md b/firebase-database/CHANGELOG.md index 616f9074e3b..e0018f68690 100644 --- a/firebase-database/CHANGELOG.md +++ b/firebase-database/CHANGELOG.md @@ -6,11 +6,12 @@ # 22.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 - 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). +- [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). # 21.0.0 @@ -23,8 +24,9 @@ Kotlin extensions library has no additional updates. # 20.3.1 -- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's corresponding bridge - methods. [#5626](//github.com/firebase/firebase-android-sdk/pull/5706) +- [fixed] Fixed the `@Exclude` annotation doesn't been propagated to Kotlin's + corresponding bridge methods. + [#5626](//github.com/firebase/firebase-android-sdk/pull/5706) ## Kotlin @@ -33,15 +35,18 @@ Kotlin extensions library has no additional updates. # 20.3.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-database-ktx` to - `com.google.firebase:firebase-database` under the `com.google.firebase.database` 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-database-ktx` have been added to - `com.google.firebase:firebase-database` under the `com.google.firebase.database` package, and all - the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-database-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-database-ktx` to + `com.google.firebase:firebase-database` under the + `com.google.firebase.database` 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-database-ktx` + have been added to `com.google.firebase:firebase-database` under the + `com.google.firebase.database` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-database-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 @@ -68,30 +73,33 @@ Kotlin extensions library has no additional updates. # 20.2.0 -- [unchanged] Updated to accommodate the release of the updated [database] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [database] + Kotlin extensions library. ## Kotlin - [feature] Added [`Query.values()`](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#values) - Kotlin Flows to listen for realtime updates and convert its values to a specific type. + Kotlin Flows to listen for realtime updates and convert its values to a + specific type. # 20.1.0 -- [unchanged] Updated to accommodate the release of the updated [database] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [database] + Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-database` 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-database-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. + .external} to `firebase-database-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. - [feature] Added [`Query.snapshots`](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#snapshots) and @@ -100,8 +108,10 @@ Kotlin extensions library has the following additional updates: # 20.0.6 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). -- [fixed] Fixed issue where `Query.get()` was propagating events to listeners on unrelated queries. +- [changed] Updated dependency of `play-services-basement` to its latest + version (v18.1.0). +- [fixed] Fixed issue where `Query.get()` was propagating events to listeners + on unrelated queries. ## Kotlin @@ -110,8 +120,8 @@ Kotlin extensions library has no additional updates. # 20.0.5 -- [fixed] `Query.get` no longer throws "Client is offline" exception when local value is not - available. Instead, it waits for a backend connection. +- [fixed] `Query.get` no longer throws "Client is offline" exception when local + value is not available. Instead, it waits for a backend connection. ## Kotlin @@ -120,10 +130,11 @@ Kotlin extensions library has no additional updates. # 20.0.4 -- [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. +- [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 @@ -132,8 +143,8 @@ Kotlin extensions library has no additional updates. # 20.0.3 -- [fixed] Fixed a crash that prevented the SDK from connecting to the backend if a credential - refresh was unsuccesful. +- [fixed] Fixed a crash that prevented the SDK from connecting to the backend + if a credential refresh was unsuccesful. ## Kotlin @@ -142,8 +153,8 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [fixed] The SDK can now continue to issue writes for apps that send invalid [app_check] tokens if - [app_check] enforcement is not enabled. +- [fixed] The SDK can now continue to issue writes for apps that send invalid + [app_check] tokens if [app_check] enforcement is not enabled. ## Kotlin @@ -152,8 +163,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [fixed] Fixed an issue that prevented clients from connecting to the backend when the app used - [app_check] without [auth]. +- [fixed] Fixed an issue that prevented clients from connecting to the backend + when the app used [app_check] without [auth]. ## Kotlin @@ -188,9 +199,12 @@ Kotlin extensions library has no additional updates. - [feature] Added [`DatabaseReference#get()`]() - and [`Query#get()`](), which - return data from the server even when older data is available in the local cache. -- [fixed] Fixed a crash that occured on some Pixel devices when closing the network connection. + and + [`Query#get()`](), + which return data from the server even when older data is available in the + local cache. +- [fixed] Fixed a crash that occured on some Pixel devices when closing the + network connection. ## Kotlin @@ -199,8 +213,8 @@ Kotlin extensions library has no additional updates. # 19.5.1 -- [fixed] Fixed a regression introduced in v19.3.0 that may cause assertion failures, especially - when persistence is enabled. +- [fixed] Fixed a regression introduced in v19.3.0 that may cause assertion + failures, especially when persistence is enabled. ## Kotlin @@ -209,8 +223,8 @@ Kotlin extensions library has no additional updates. # 19.5.0 -- [feature] The SDK can now infer a default database URL even if it is omitted in the project's - configuration. +- [feature] The SDK can now infer a default database URL even if it is omitted + in the project's configuration. ## Kotlin @@ -219,7 +233,8 @@ Kotlin extensions library has no additional updates. # 19.4.0 -- [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, [`FirebaseDatabase#useEmulator()`](). ## Kotlin @@ -249,7 +264,8 @@ Kotlin extensions library has no additional updates. # 19.2.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. ## Kotlin @@ -260,50 +276,55 @@ Kotlin extensions library has no additional updates. - [feature] Added support for type wildcards in [`GenericTypeIndicator`](/docs/reference/android/com/google/firebase/database/GenericTypeIndicator), - expanding our custom class serialization to include classes with wildcard generics. + expanding our custom class serialization to include classes with wildcard + generics. ## Kotlin -- [feature] The beta release of a [database] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-database` - library. To learn more, visit the - [[database] KTX documentation](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary). +- [feature] The beta release of a [database] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-database` library. To learn more, visit the + [[database] KTX + documentation](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary). # 19.1.0 -- [feature] Added support for the [firebase_database] Emulator. To connect to the emulator, specify - "http://:/?ns=" as your Database URL (via +- [feature] Added support for the [firebase_database] Emulator. To connect to + the emulator, specify "http://:/?ns=" as your + Database URL (via [`FirebaseDatabase.getInstance(String)`]()). - Note that if you are running the [database] Emulator on "localhost" and connecting from an app - that is running inside an Android Emulator, the [database] Emulator host will be "10.0.2.2" - followed by its port. + Note that if you are running the [database] Emulator on "localhost" and + connecting from an app that is running inside an Android Emulator, the + [database] Emulator host will be "10.0.2.2" followed by its port. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. - [fixed] The SDK now reports the correct version number (via [`FirebaseDatabase.getSdkVersion()`](). # 17.0.0 -- [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. +- [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. # 16.0.6 -- [fixed] Fixed a potential `NullPointerException` calling method `java.lang.String.toLowerCase`. +- [fixed] Fixed a potential `NullPointerException` calling method + `java.lang.String.toLowerCase`. (https://github.com/firebase/firebase-android-sdk/issues/179) # 16.0.3 -- [fixed] Fixed an initialization issue that prevented the Realtime Database client from being - initialized outside of Android's main thread. +- [fixed] Fixed an initialization issue that prevented the Realtime Database + client from being initialized outside of Android's main thread. # 16.0.2 @@ -312,4 +333,3 @@ Kotlin extensions library has no additional updates. # 16.0.1 - [changed] Added `Nullability` annotations to all public API classes/methods. - diff --git a/firebase-dataconnect/CHANGELOG.md b/firebase-dataconnect/CHANGELOG.md index 650003677d1..301a22753c1 100644 --- a/firebase-dataconnect/CHANGELOG.md +++ b/firebase-dataconnect/CHANGELOG.md @@ -1,7 +1,7 @@ # Unreleased -- [changed] Add grpc request header for platform name and sdk version - to enable metrics collection in cloud monitoring. +- [changed] Add grpc request header for platform name and sdk version to enable + metrics collection in cloud monitoring. ([#8486](https://github.com/firebase/firebase-android-sdk/pull/8486), [#8495](https://github.com/firebase/firebase-android-sdk/pull/8495)) - [changed] Add grpc request header for SQL Connect server affinity, to improve @@ -27,8 +27,8 @@ - [fixed] Realtime query subscriptions now correctly throw an exception when the Firebase Auth user changes, instead of silently stopping emitting. ([#8283](https://github.com/firebase/firebase-android-sdk/pull/8283)) -- [fixed] Realtime query subscriptions could fail abruptly if the auth - token changed while connected. +- [fixed] Realtime query subscriptions could fail abruptly if the auth token + changed while connected. ([#8312](https://github.com/firebase/firebase-android-sdk/pull/8312)) - [fixed] An infinite loop could occur when Auth and/or App Check tokens were refreshed. @@ -36,9 +36,9 @@ - [fixed] Expired Auth and/or App Check tokens were not automatically refreshed when rejected by the server upon connection. ([#8346](https://github.com/firebase/firebase-android-sdk/pull/8346)) -- [changed] Realtime query subscriptions now include SDK type metadata - (core vs. generated SDK) in request headers, matching the behavior of - standard query executions. +- [changed] Realtime query subscriptions now include SDK type metadata (core + vs. generated SDK) in request headers, matching the behavior of standard + query executions. ([#8356](https://github.com/firebase/firebase-android-sdk/pull/8356)) # 17.3.1 @@ -46,8 +46,8 @@ - [fixed] Queries executed with FetchPolicy.CACHE_ONLY now fail, as expected, if local caching is not enabled, instead of behaving like SERVER_ONLY. ([#8214](https://github.com/firebase/firebase-android-sdk/pull/8214)) -- [changed] Realtime query results now update the local cache as query - results are received. +- [changed] Realtime query results now update the local cache as query results + are received. ([#8220](https://github.com/firebase/firebase-android-sdk/pull/8220)) - [fixed] Realtime query subscriptions now update the Firebase Auth token if it refreshed during the lifetime of the connection, avoiding an UNAUTHENTICATED @@ -57,14 +57,14 @@ # 17.3.0 -- [feature] `QuerySubscription.flow` gains - [realtime updates](https://firebase.google.com/docs/sql-connect/realtime). +- [feature] `QuerySubscription.flow` gains [realtime + updates](https://firebase.google.com/docs/sql-connect/realtime). ([#8186](https://github.com/firebase/firebase-android-sdk/pull/8186)) - [changed] Internal fix of wasteful computation only meant for debug logging. ([#8126](https://github.com/firebase/firebase-android-sdk/pull/8126)) -- [changed] Internal change to replace `SecureRandom` with just `Random` - as the random numbers were not used in a security-sensitive context, - thus the performance costs of secure random number generation were unnecessary. +- [changed] Internal change to replace `SecureRandom` with just `Random` as the + random numbers were not used in a security-sensitive context, thus the + performance costs of secure random number generation were unnecessary. ([#8154](https://github.com/firebase/firebase-android-sdk/pull/8154)) # 17.2.2 @@ -81,8 +81,8 @@ - [changed] Ensure exceptions are not silently ignored when closing `FirebaseDataConnect` instances. ([#7909](https://github.com/firebase/firebase-android-sdk/pull/7909)) -- [changed] Internal change to use `SecureRandom` when generating operation IDs. - ([#7910](https://github.com/firebase/firebase-android-sdk/pull/7910)) +- [changed] Internal change to use `SecureRandom` when generating operation + IDs. ([#7910](https://github.com/firebase/firebase-android-sdk/pull/7910)) - [changed] Internal refactor to use immutable byte arrays. ([#7957](https://github.com/firebase/firebase-android-sdk/pull/7957)) @@ -95,8 +95,9 @@ [#7875](https://github.com/firebase/firebase-android-sdk/pull/7875), [#7885](https://github.com/firebase/firebase-android-sdk/pull/7885), [#7887](https://github.com/firebase/firebase-android-sdk/pull/7887)) -- [fixed] Fix UnsupportedOperationException when serializing lists of *nullable* AnyValue. - ([#7864](https://github.com/firebase/firebase-android-sdk/pull/7864)) +- [fixed] Fix UnsupportedOperationException when serializing lists of + *nullable* AnyValue. +([#7864](https://github.com/firebase/firebase-android-sdk/pull/7864)) # 17.1.4 @@ -125,32 +126,36 @@ # 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. +- [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 - `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)) + `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] **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 - erroneous UNAUTHENTICATED exceptions. +- [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 @@ -159,9 +164,10 @@ # 16.0.0 -- [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. +- [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 @@ -172,38 +178,50 @@ # 16.0.0-beta04 - [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. + `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 - withVariablesSerializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) -- [feature] GeneratedConnector gains methods copy(), operations(), queries(), and mutations(). +- [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] 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 - 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 - 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 +- [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 withDataDeserializer(). + ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) +- [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 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 - 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 - 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)) +- [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 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 @@ -212,8 +230,9 @@ # 16.0.0-beta01 -- [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] 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. ([#6176](https://github.com/firebase/firebase-android-sdk/pull/6176)) - [feature] Added `AnyValue` to support the `Any` custom GraphQL scalar type. @@ -222,11 +241,10 @@ ([#6307](https://github.com/firebase/firebase-android-sdk/pull/6307)) - [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. - ([#6298](https://github.com/firebase/firebase-android-sdk/pull/6298) and - [#6179](https://github.com/firebase/firebase-android-sdk/pull/6179)) +- [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). ([#6299](https://github.com/firebase/firebase-android-sdk/pull/6299)) - [changed] Added `equals` and `hashCode` methods to `GeneratedConnector`. ([#6177](https://github.com/firebase/firebase-android-sdk/pull/6177)) - diff --git a/firebase-datatransport/CHANGELOG.md b/firebase-datatransport/CHANGELOG.md index 1b407ee1e15..f72e1874c61 100644 --- a/firebase-datatransport/CHANGELOG.md +++ b/firebase-datatransport/CHANGELOG.md @@ -6,7 +6,8 @@ # 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.0.0 @@ -14,5 +15,5 @@ # 18.2.0 -- [feature] Expose the transport factory as a qualified dependency based on the endpoint connected. - +- [feature] Expose the transport factory as a qualified dependency based on the + endpoint connected. diff --git a/firebase-dynamic-links/CHANGELOG.md b/firebase-dynamic-links/CHANGELOG.md index bcd189d6f4e..b41bec8736a 100644 --- a/firebase-dynamic-links/CHANGELOG.md +++ b/firebase-dynamic-links/CHANGELOG.md @@ -1,12 +1,13 @@ # 23.0.0 - [removed] **Breaking change**: FirebaseDynamicLinks has been removed. See - https://firebase.google.com/support/dynamic-links-faq for more info. +https://firebase.google.com/support/dynamic-links-faq for more info. # 22.1.0 -- [deprecated] `firebase-dynamic-links` is deprecated. For information about timelines and - alternatives, see the [irebase-dynamic-links deprecation FAQ](/support/dynamic-links-faq). +- [deprecated] `firebase-dynamic-links` is deprecated. For information about + timelines and alternatives, see the [irebase-dynamic-links deprecation + FAQ](/support/dynamic-links-faq). ## Kotlin @@ -24,15 +25,19 @@ The Kotlin extensions library has no additional updates. # 21.2.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-dynamic-links-ktx` - to `com.google.firebase:firebase-dynamic-links` under the `com.google.firebase.dynamiclinks` - 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-dynamic-links-ktx` have been added to - `com.google.firebase:firebase-dynamic-links` under the `com.google.firebase.dynamiclinks` package, - and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-dynamic-links-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-dynamic-links-ktx` to + `com.google.firebase:firebase-dynamic-links` under the + `com.google.firebase.dynamiclinks` 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-dynamic-links-ktx` have been added to + `com.google.firebase:firebase-dynamic-links` under the + `com.google.firebase.dynamiclinks` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-dynamic-links-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 @@ -41,22 +46,26 @@ The Kotlin extensions library has no additional updates. # 21.1.0 -- [unchanged] Updated to accommodate the release of the updated [ddls] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the updated [ddls] Kotlin + extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-dynamic-links` 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-dynamic-links-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. + .external} to `firebase-dynamic-links-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. # 21.0.2 -- [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 @@ -65,10 +74,11 @@ The Kotlin extensions library has no additional updates. # 21.0.1 -- [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. +- [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 @@ -77,9 +87,10 @@ The Kotlin extensions library has no additional updates. # 21.0.0 -- [changed] Due to its [dependency on Google Play services](/docs/android/android-play-services), - this SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use - Android 4.4 or higher. +- [changed] Due to its [dependency on Google Play + services](/docs/android/android-play-services), this SDK now requires devices + and emulators to target API level 19 (KitKat) or higher and to use Android + 4.4 or higher. - [fixed] Fixed non-null annotation. #2336 ## Kotlin @@ -124,7 +135,8 @@ The Kotlin extensions library transitively includes the updated `firebase-storag the following additional updates: - [feature] Added API support for destructuring of - [`ShortDynamicLink`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ShortDynamicLink) and + [`ShortDynamicLink`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ShortDynamicLink) + and [`PendingDynamicLinkData`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/PendingDynamicLinkData). # 19.1.0 @@ -135,19 +147,20 @@ the following additional updates: ## Kotlin -- [feature] The beta release of a [ddls] Android library with Kotlin extensions is now available. - The Kotlin extensions library transitively includes the base `firebase-dynamic-links` library. To - learn more, visit the - [[ddls] KTX documentation](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ktx/package-summary). +- [feature] The beta release of a [ddls] Android library with Kotlin extensions + is now available. The Kotlin extensions library transitively includes the + base `firebase-dynamic-links` library. To learn more, visit the [[ddls] KTX + documentation](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ktx/package-summary). # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 16.2.0 -- [changed] Refactored code to ensure functionality alignment with other updated Firebase libraries. +- [changed] Refactored code to ensure functionality alignment with other + updated Firebase libraries. - [changed] Updated minSdkVersion to API level 16. # 16.1.7 @@ -156,8 +169,10 @@ the following additional updates: # 16.1.3 -- [fixed] Fixed an issue that caused short link creation to fail when creating links through - `FirebaseDynamicLinks.getInstance().createDynamicLink().buildShortDynamicLink()` using Google Play - Services 13.2.80 and FDL SDK 16.1.0. The issue only occurred when creating shortening links from - parameters, links created using preconstructed long links from `setLongLink()` were unaffected. - This fix also addresses issues in newer versions of Google Play Services. +- [fixed] Fixed an issue that caused short link creation to fail when creating + links through + `FirebaseDynamicLinks.getInstance().createDynamicLink().buildShortDynamicLink()` + using Google Play Services 13.2.80 and FDL SDK 16.1.0. The issue only + occurred when creating shortening links from parameters, links created using + preconstructed long links from `setLongLink()` were unaffected. This fix also + addresses issues in newer versions of Google Play Services. diff --git a/firebase-firestore/CHANGELOG.md b/firebase-firestore/CHANGELOG.md index 3074bf64c92..b25824893f8 100644 --- a/firebase-firestore/CHANGELOG.md +++ b/firebase-firestore/CHANGELOG.md @@ -2,13 +2,19 @@ # 26.5.0 -- [changed] Increased the default gRPC flow control window size from 64KB to 256KB to speed up large document reads, and added support for configuring this window size via `FirebaseFirestoreSettings.Builder.setGrpcFlowControlWindow()`. -- [changed] Increased the gRPC maximum inbound message size limit to 17MB to support downloading Cloud Firestore documents of up to 16MB. +- [changed] Increased the default gRPC flow control window size from 64KB to + 256KB to speed up large document reads, and added support for configuring + this window size via + `FirebaseFirestoreSettings.Builder.setGrpcFlowControlWindow()`. +- [changed] Increased the gRPC maximum inbound message size limit to 17MB to + support downloading Cloud Firestore documents of up to 16MB. # 26.4.1 -- [changed] Added support for caching documents larger than 1MB by reading them in chunks from the local SQLite database. -- [changed] Prevent OutOfMemory errors in debug logging by truncating large protobuf payloads and strings. +- [changed] Added support for caching documents larger than 1MB by reading them + in chunks from the local SQLite database. +- [changed] Prevent OutOfMemory errors in debug logging by truncating large + protobuf payloads and strings. # 26.4.0 @@ -16,8 +22,11 @@ # 26.3.0 -- [feature] Added search stage support for `languageCode`, `offset`, `limit`, and `retrievalDepth`. -- [feature] Added support for Pipeline expressions `arraySlice`, `arraySliceToEnd`, `arrayFilter`, `arrayTransform` and `arrayTransformWithIndex`. +- [feature] Added search stage support for `languageCode`, `offset`, `limit`, + and `retrievalDepth`. +- [feature] Added support for Pipeline expressions `arraySlice`, + `arraySliceToEnd`, `arrayFilter`, `arrayTransform` and + `arrayTransformWithIndex`. [#7989](https://github.com/firebase/firebase-android-sdk/pull/7989) # 26.2.0 @@ -26,14 +35,17 @@ [#7999](https://github.com/firebase/firebase-android-sdk/pull/7999) - [feature] Added support for Pipeline expressions `ifNull` and `coalesce`. [#7976](https://github.com/firebase/firebase-android-sdk/pull/7976) -- [feature] Added support for `timestampTruncate`, `timestampDiff`, and `timestampExtract` Pipeline expressions. +- [feature] Added support for `timestampTruncate`, `timestampDiff`, and + `timestampExtract` Pipeline expressions. [#7955](https://github.com/firebase/firebase-android-sdk/pull/7955) - [feature] Pipeline operations are GA now. -- [feature] Added support for Pipeline Subqueries, including `define` and `variable` expressions. +- [feature] Added support for Pipeline Subqueries, including `define` and + `variable` expressions. [#7736](https://github.com/firebase/firebase-android-sdk/pull/7736) - [feature] Added support for Pipeline expressions `nor` and `switchOn`. [#7903](https://github.com/firebase/firebase-android-sdk/pull/7903) -- [feature] Added support for `first`, `last`, `arrayAgg`, and `arrayAggDistinct` Pipeline expressions. +- [feature] Added support for `first`, `last`, `arrayAgg`, and + `arrayAggDistinct` Pipeline expressions. [#7893](https://github.com/firebase/firebase-android-sdk/pull/7893) - [feature] Added support for `rand` and `trunc` Pipeline expressions. [#7886](https://github.com/firebase/firebase-android-sdk/pull/7886) @@ -41,29 +53,33 @@ [#7985](https://github.com/firebase/firebase-android-sdk/pull/7985) - [feature] Add public preview support for full-text search and geo search. [#7949](https://github.com/firebase/firebase-android-sdk/pull/7949) -- [feature] Added support for `ltrim`, `rtrim`, `stringIndexOf`, `stringRepeat`, `stringReplaceOne`, and `stringReplaceAll` Pipeline expressions. +- [feature] Added support for `ltrim`, `rtrim`, `stringIndexOf`, + `stringRepeat`, `stringReplaceOne`, and `stringReplaceAll` Pipeline + expressions. [#7978](https://github.com/firebase/firebase-android-sdk/pull/7978) -- [feature] Added support for `mapGet` `mapSet`, `mapEntries`, and `mapKeys` Pipeline expressions. +- [feature] Added support for `mapGet` `mapSet`, `mapEntries`, and `mapKeys` + Pipeline expressions. [#7987](https://github.com/firebase/firebase-android-sdk/pull/7987) # 26.1.2 -- [feature] Added support for Pipeline expressions `arrayFirst`, `arrayFirstN`, `arrayLast`, - `arrayLastN`, `arrayMinimum`, `arrayMinimumN`, `arrayMaximum`, `arrayMaximumN`, `arrayIndexOf`, - `arrayLastIndexOf` and `arrayIndexOfAll`. +- [feature] Added support for Pipeline expressions `arrayFirst`, `arrayFirstN`, + `arrayLast`, `arrayLastN`, `arrayMinimum`, `arrayMinimumN`, `arrayMaximum`, + `arrayMaximumN`, `arrayIndexOf`, `arrayLastIndexOf` and `arrayIndexOfAll`. [#7836](//github.com/firebase/firebase-android-sdk/pull/7836) -- [fixed] Fix a performance regression in `ObjectValue.equals()` that caused exponential execution - time for large or deeply nested documents. +- [fixed] Fix a performance regression in `ObjectValue.equals()` that caused + exponential execution time for large or deeply nested documents. [#7877](https://github.com/firebase/firebase-android-sdk/issues/7877) # 26.1.1 -- [feature] Added support for `regexFind` and `regexFindAll` Pipeline expressions. +- [feature] Added support for `regexFind` and `regexFindAll` Pipeline + expressions. [#7669](https://github.com/firebase/firebase-android-sdk/pull/7669) - [changed] Updated `Expression.alias()` to return `AliasedExpression`. -- [removed] Removed `isNan`, `isNotNan`, `isNull`, and `isNotNull` factory methods from `Expression`. - Use `equal(Double.NaN)`, `notEqual(Double.NaN)`, `equal(nullValue())`, and `notEqual(nullValue())` - respectively. +- [removed] Removed `isNan`, `isNotNan`, `isNull`, and `isNotNull` factory + methods from `Expression`. Use `equal(Double.NaN)`, `notEqual(Double.NaN)`, + `equal(nullValue())`, and `notEqual(nullValue())` respectively. # 26.1.0 @@ -72,15 +88,15 @@ # 26.0.2 -- [changed] Improve query performance in large result sets by replacing the deprecated AsyncTask - thread pool with a self-managed thread pool. +- [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. - [#7370](//github.com/firebase/firebase-android-sdk/issues/7370) -- [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. - [#7389](//github.com/firebase/firebase-android-sdk/pull/7389) +- [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. [#7388](//github.com/firebase/firebase-android-sdk/pull/7388) +- [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) @@ -88,26 +104,29 @@ # 26.0.1 - [changed] Bumped internal dependencies. -- [changed] Improve the performance of queries in collections that contain many deleted documents. +- [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 - 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 - and received some improvements in v25.1.3. +- [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 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` - classes instead of Firestore's bespoke implementations. +- [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] 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) @@ -118,8 +137,9 @@ 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) +- [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 @@ -174,8 +194,8 @@ 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 @@ -196,8 +216,9 @@ 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) +- [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 @@ -208,9 +229,10 @@ Kotlin extensions library has no additional updates. - [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 - 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. +- [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. [#5417](https://github.com/firebase/firebase-android-sdk/issues/5417) @@ -222,8 +244,8 @@ Kotlin extensions library has no additional updates. # 24.10.0 -- [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal state when comparing - snapshots. +- [fixed] Fixed the `DocumentSnapshot` equals method to not consider internal + state when comparing snapshots. # 24.9.1 @@ -237,15 +259,18 @@ Kotlin extensions library has no additional updates. # 24.9.0 -- [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 - `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) +- [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 `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 @@ -254,8 +279,8 @@ 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 @@ -264,10 +289,11 @@ 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 - execution locally. See +- [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}). + ([GitHub [#4987](//github.com/firebase/firebase-android-sdk/pull/4987){: + .external}). ## Kotlin @@ -283,8 +309,9 @@ Kotlin extensions library has no additional updates. - [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. - (GitHub [#5091](//github.com/firebase/firebase-android-sdk/issues/5091){: .external}) +- [fixed] Fixed a thread interference issue that may lead to a + ConcurrentModificationException. (GitHub + [#5091](//github.com/firebase/firebase-android-sdk/issues/5091){: .external}) ## Kotlin @@ -293,9 +320,10 @@ Kotlin extensions library has no additional updates. # 24.6.1 -- [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 +- [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 @@ -305,20 +333,22 @@ Kotlin extensions library has no additional updates. # 24.6.0 -- [fixed] Fixed stack overflow caused by deeply nested server timestamps. (GitHub - [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) -- [feature] Added new - [cache config APIs]() +- [fixed] Fixed stack overflow caused by deeply nested server timestamps. + (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: + .external}) +- [feature] Added new [cache config + APIs]() to customize the SDK's cache setup. -- [feature] Added - [LRU garbage collector](/docs/reference/android/com/google/firebase/firestore/MemoryLruGcSettings) +- [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 [`FirebaseFirestoreSettings`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings):
`isPersistenceEnabled` and `getCacheSizeBytes`. - [deprecated] Deprecated the following APIs from [`FirebaseFirestoreSettings.Builder`]():
- `isPersistenceEnabled`, `getCacheSizeBytes`, `setPersistenceEnabled`, and `setCacheSizeBytes`. + `isPersistenceEnabled`, `getCacheSizeBytes`, `setPersistenceEnabled`, and + `setCacheSizeBytes`. - [changed] Internal changes to ensure alignment with other SDK releases. ## Kotlin @@ -328,8 +358,9 @@ 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 @@ -337,7 +368,8 @@ Kotlin extensions library has no additional updates. [`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. + Kotlin Flows to listen for realtime updates and convert its values to a + specific type. # 24.4.5 @@ -350,9 +382,10 @@ 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 @@ -362,7 +395,8 @@ 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 an issue that stopped some performance optimization from being + applied. ## Kotlin @@ -371,7 +405,8 @@ 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 @@ -380,10 +415,12 @@ 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) +- [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 @@ -394,19 +431,22 @@ Kotlin extensions library has no additional updates. # 24.4.0 - [feature] Added - [`Query.count()`](), which - fetches the number of documents in the result set without actually downloading the documents. + [`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. + .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 @@ -418,7 +458,8 @@ The Kotlin extensions library transitively includes the updated `firebase-firest # 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 @@ -433,7 +474,8 @@ Kotlin extensions library also has the following additional 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 @@ -461,7 +503,8 @@ 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 @@ -470,8 +513,9 @@ 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. +- [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 @@ -481,10 +525,10 @@ Kotlin extensions library has no additional updates. # 24.1.0 -- [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. +- [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). ## Kotlin @@ -494,19 +538,21 @@ 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 - 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 - from proceeding if a network connection was opened right before. -- [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 - reduces overall query latency. -- [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. +- [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 from proceeding if a network connection was opened + right before. +- [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 reduces overall query latency. +- [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 @@ -516,7 +562,8 @@ 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 queries with collections that contain + subcollections. ## Kotlin @@ -525,9 +572,10 @@ 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 - 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. +- [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]. ## Kotlin @@ -547,8 +595,8 @@ 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 @@ -566,8 +614,8 @@ 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 @@ -586,7 +634,8 @@ 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 @@ -595,10 +644,11 @@ 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 - were generated by the NodeJS SDK. -- [fixed] Fixed a bug where local cache inconsistencies were unnecessarily being resolved, causing - the `Task` objects returned from `get()` invocations to never complete. #2404 +- [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 the `Task` objects returned from `get()` invocations + to never complete. #2404 ## Kotlin @@ -611,8 +661,9 @@ Kotlin extensions library has no additional updates. [`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. + 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 @@ -621,9 +672,10 @@ 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 - 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. +- [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 @@ -632,9 +684,9 @@ 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 - aligns the SDK with the [firestore] backend, which has always accepted null and NaN for all - operators. +- [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 @@ -643,9 +695,9 @@ Kotlin extensions library has no additional updates. # 22.0.0 -- [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 +- [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 @@ -670,15 +722,14 @@ Kotlin extensions library has no additional updates. [`Query.whereNotEqualTo()`]() query operators. - - `Query.whereNotIn()` finds documents where a specified field's value is not in a specified - array. - - `Query.whereNotEqualTo()` finds documents where a specified field's value does not equal the - specified value. - - Neither query operator finds documents where the specified field isn't present. + - `Query.whereNotIn()` finds documents where a specified field's value is not +in a specified array. + - `Query.whereNotEqualTo()` finds documents where a specified field's value +does not equal the specified value. -- [fixed] Fixed an issue that caused poor performance for queries that filtered results using nested - array values. +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. ## Kotlin @@ -687,11 +738,13 @@ Kotlin extensions library has no additional updates. # 21.6.0 -- [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 - immediately after a user signed in. -- [feature] Added support for connecting to the Firebase Emulator Suite via a new method, +- [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 immediately after a user signed in. +- [feature] Added support for connecting to the Firebase Emulator Suite via a + new method, [`FirebaseFirestore#useEmulator()`](). ## Kotlin @@ -701,9 +754,10 @@ Kotlin extensions library has no additional updates. # 21.5.0 -- [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. +- [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 @@ -712,8 +766,8 @@ 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 @@ -722,9 +776,9 @@ 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 - crashes caused by apps that depend on the wrong flavor of Guava. - ([Issue #1125](//github.com/firebase/firebase-android-sdk/issues/1125)) +- [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 @@ -733,11 +787,12 @@ Kotlin extensions library has no additional updates. # 21.4.1 -- [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 - allocations and improve performance. Calls to `DocumentSnapshot.getData()` and - `DocumentSnapshot.toObject()` will see the biggest improvement. +- [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 allocations and improve performance. Calls to + `DocumentSnapshot.getData()` and `DocumentSnapshot.toObject()` will see the + biggest improvement. ## Kotlin @@ -746,11 +801,11 @@ Kotlin extensions library has no additional updates. # 21.4.0 -- [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 - to normal. +- [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 to normal. ## Kotlin @@ -759,7 +814,8 @@ 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 @@ -768,14 +824,15 @@ Kotlin extensions library has no additional updates. # 21.3.0 -- [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 - 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. +- [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 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 @@ -784,12 +841,13 @@ 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 - they were unable to connect to [firestore]. -- [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 - initialization. +- [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 document in different threads could cause a + `NullPointerException`. +- [fixed] Fixed a race condition that could cause a `NullPointerException` + during client initialization. ## Kotlin @@ -800,8 +858,8 @@ Kotlin extensions library has no additional updates. - [feature] Added an [`addSnapshotsInSyncListener()`]() - method to `FirebaseFirestore` that notifies you when all your snapshot listeners are in sync with - each other. + method to `FirebaseFirestore` that notifies you when all your snapshot + listeners are in sync with each other. ## Kotlin @@ -810,8 +868,8 @@ 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 @@ -826,14 +884,15 @@ Firestore SDK to get the fix. - [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. + 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 [`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 - highly contended documents are more likely to succeed. + 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 highly contended documents are more likely to succeed. ## Kotlin @@ -842,13 +901,17 @@ Kotlin extensions library has no additional updates. # 21.0.0 -- [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 - 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] 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 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. ## Kotlin @@ -857,20 +920,22 @@ Kotlin extensions library has no additional updates. # 20.2.0 -- [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. +- [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 - `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. + `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 - documents in a collection. -- [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)). +- [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 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 @@ -879,11 +944,13 @@ 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 - taken to produce the first query result. -- [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. +- [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 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 @@ -892,9 +959,11 @@ 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 - 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. +- [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 @@ -903,8 +972,9 @@ Kotlin extensions library has no additional updates. # 19.0.1 -- [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 +- [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 @@ -914,18 +984,19 @@ 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 - using the +- [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 - 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 +- [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 - you use [firebase_auth], update to `firebase-auth` v17.0.0 or later to ensure functionality - alignment. +- [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 @@ -938,105 +1009,117 @@ Kotlin extensions library has no additional updates. ## Kotlin -- [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). +- [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 [`FieldValue.increment()`](), - which can be used in `update()` and `set(..., SetOptions.merge())` to increment or decrement - numeric field values safely without transactions. + which can be used in `update()` and `set(..., SetOptions.merge())` to + increment or decrement numeric field values safely without transactions. - [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 - 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 - 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 - serialization layer. + 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 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 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 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 - previous method sometimes incorrectly calculated the size by a few MBs, potentially delaying - garbage collection. +- [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 - size. -- [changed] [firestore] now recovers more quickly from long periods without network access. +- [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. # 18.0.0 -- [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 +- [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 - `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 - 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 - before a listener received the write, the app could crash. +- [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 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 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 - 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 +- [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 - 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 - to access the SQLite database from multiple threads. +- [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 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 - Cloud Firestore servers. This can lead to slight behavior changes and may affect the +- [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 - behind the server version. Instead, the SDK buffers these events until the client has caught up - with the server. +- [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 - return cached data without attempting to reach the backend. -- [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 - `set(..., SetOptions.merge())`. -- [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 - indexes, are automatically logged as warnings in addition to being surfaced via the API. +- [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 data, potentially reducing delays while offline. +- [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, 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 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 - errors, don't use v17.0.5. +- [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 @@ -1047,28 +1130,33 @@ Kotlin extensions library has no additional updates. to atomically add and remove elements from an array field in a document. - [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. + 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. +- [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 - [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. +- [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 - implements [`Parcelable`](//developer.android.com/reference/android/os/Parcelable) in addition to +- [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 - Wi-Fi and cellular networks. +- [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 @@ -1079,4 +1167,3 @@ Kotlin extensions library has no additional updates. or [`FieldValue.serverTimestamp()`]() values. - diff --git a/firebase-functions/CHANGELOG.md b/firebase-functions/CHANGELOG.md index 91382e8f180..64e21ba7400 100644 --- a/firebase-functions/CHANGELOG.md +++ b/firebase-functions/CHANGELOG.md @@ -6,9 +6,10 @@ # 22.1.0 -- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. If your app depends - on OkHTTP version 3.x the change is both binary- and Java source-compatible, with a few small - exceptions. See https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more +- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. + If your app depends on OkHTTP version 3.x the change is both binary- and Java + source-compatible, with a few small exceptions. See + https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more details. # 22.0.1 @@ -17,16 +18,17 @@ # 22.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 - 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). +- [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). # 21.2.1 -- [fixed] Fixed issue that caused the SDK to crash when trying to stream a function that does not - exist. +- [fixed] Fixed issue that caused the SDK to crash when trying to stream a + function that does not exist. ## Kotlin @@ -36,8 +38,8 @@ Kotlin extensions library has no additional updates. # 21.2.0 - [feature] Streaming callable functions are now supported. -- [fixed] Fixed an issue that prevented the App Check token from being handled correctly in case of - error. +- [fixed] Fixed an issue that prevented the App Check token from being handled + correctly in case of error. ## Kotlin @@ -74,15 +76,18 @@ Kotlin extensions library has no additional updates. # 20.4.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-functions-ktx` to - `com.google.firebase:firebase-functions` under the `com.google.firebase.functions` 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-functions-ktx` have been added to - `com.google.firebase:firebase-functions` under the `com.google.firebase.functions` package, and - all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-functions-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-functions-ktx` to + `com.google.firebase:firebase-functions` under the + `com.google.firebase.functions` 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-functions-ktx` + have been added to `com.google.firebase:firebase-functions` under the + `com.google.firebase.functions` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-functions-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 @@ -91,7 +96,8 @@ Kotlin extensions library has no additional updates. # 20.3.1 -- [changed] Added support for App Check limited-use tokens in HTTPS Callable Functions. +- [changed] Added support for App Check limited-use tokens in HTTPS Callable + Functions. ## Kotlin @@ -119,7 +125,8 @@ Kotlin extensions library has no additional updates. # 20.2.1 -- [changed] Updated dependency of `firebase-iid` to its latest version (v21.1.0). +- [changed] Updated dependency of `firebase-iid` to its latest version + (v21.1.0). ## Kotlin @@ -128,23 +135,26 @@ Kotlin extensions library has no additional updates. # 20.2.0 -- [unchanged] Updated to accommodate the release of the updated [functions_client] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated + [functions_client] Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-functions` 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-functions-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. + .external} to `firebase-functions-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. # 20.1.1 -- [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 @@ -164,10 +174,11 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [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. +- [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 @@ -176,7 +187,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [fixed] Fixed an issue that prevented functions from proceeding after [app_check] failures. +- [fixed] Fixed an issue that prevented functions from proceeding after + [app_check] failures. ## Kotlin @@ -205,7 +217,8 @@ Kotlin extensions library has no additional updates. # 19.1.0 -- [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, [`FirebaseFunctions#UseEmulator()`](). - [deprecated] Deprecated the `useFunctionsEmulator(String)` method. @@ -216,7 +229,8 @@ Kotlin extensions library has no additional updates. # 19.0.2 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. ## Kotlin @@ -225,27 +239,28 @@ Kotlin extensions library has no additional updates. # 19.0.1 -- [unchanged] Updated to accommodate the release of the [functions_client] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the [functions_client] + Kotlin extensions library. ## Kotlin -- [feature] The beta release of a [functions_client] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-functions` - library. To learn more, visit the - [[cloud_functions] KTX documentation](/docs/reference/kotlin/com/google/firebase/functions/ktx/package-summary). +- [feature] The beta release of a [functions_client] Android library with + Kotlin extensions is now available. The Kotlin extensions library + transitively includes the base `firebase-functions` library. To learn more, + visit the [[cloud_functions] KTX + documentation](/docs/reference/kotlin/com/google/firebase/functions/ktx/package-summary). # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.1.0 - [feature] Added [`getTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) - method to get the timeout for a callable. For more details, refer to - [GitHub PR #574](//github.com/firebase/firebase-android-sdk/pull/574). + method to get the timeout for a callable. For more details, refer to [GitHub + PR #574](//github.com/firebase/firebase-android-sdk/pull/574). # 17.0.0 @@ -256,15 +271,16 @@ Kotlin extensions library has no additional updates. - [changed] Changed the default timeout for callable functions to 70 seconds ([#2329](//github.com/firebase/firebase-android-sdk/pull/224)). - [feature] Added - [`setTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) and + [`setTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) + and [`withTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) methods to change the timeout for a callable ([#2329](//github.com/firebase/firebase-android-sdk/pull/224)). # 16.1.0 -- [feature] `FirebaseFunctions.getInstance()` now allows passing in an optional region to override - the default "us-central1". -- [feature] New `useFunctionsEmulator` method allows testing against a local instance of the - [Cloud Functions Emulator](https://firebase.google.com/docs/functions/local-emulator). - +- [feature] `FirebaseFunctions.getInstance()` now allows passing in an optional + region to override the default "us-central1". +- [feature] New `useFunctionsEmulator` method allows testing against a local + instance of the [Cloud Functions + Emulator](https://firebase.google.com/docs/functions/local-emulator). diff --git a/firebase-inappmessaging-display/CHANGELOG.md b/firebase-inappmessaging-display/CHANGELOG.md index a292f6b992f..7dbdfd0e0bb 100644 --- a/firebase-inappmessaging-display/CHANGELOG.md +++ b/firebase-inappmessaging-display/CHANGELOG.md @@ -6,7 +6,8 @@ # 22.0.2 -- [changed] Updated `com.github.bumptech.glide:glide` dependency to `5.0.5`. [#7469] +- [changed] Updated `com.github.bumptech.glide:glide` dependency to `5.0.5`. + [#7469] # 22.0.1 @@ -14,11 +15,12 @@ # 22.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 - 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). +- [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). # 21.0.2 @@ -52,8 +54,8 @@ library. The Kotlin extensions library has no additional updates. # 20.4.1 -- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called (GitHub - [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) +- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called + (GitHub [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) ## Kotlin @@ -66,13 +68,17 @@ library. The Kotlin extensions library has no additional updates. `com.google.firebase:firebase-inappmessaging-display-ktx` to `com.google.firebase:firebase-inappmessaging-display` under the `com.google.firebase.inappmessaging.display` 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-inappmessaging-display-ktx` have been - added to `com.google.firebase:firebase-inappmessaging-display` under the - `com.google.firebase.inappmessaging.display` package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-inappmessaging-display-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) + [FAQ about this + initiative](https://firebase.google.com/docs/android/kotlin-migration) +- [deprecated] All the APIs from + `com.google.firebase:firebase-inappmessaging-display-ktx` have been added to + `com.google.firebase:firebase-inappmessaging-display` under the + `com.google.firebase.inappmessaging.display` package, and all the Kotlin + extensions (KTX) APIs in + `com.google.firebase:firebase-inappmessaging-display-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 @@ -81,8 +87,8 @@ library. The Kotlin extensions library has no additional updates. # 20.3.5 -- [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 @@ -114,9 +120,10 @@ library. The Kotlin extensions library has no additional updates. # 20.3.1 -- [fixed] Fixed nullpointer crash - ([GitHub Issue #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) -- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11. +- [fixed] Fixed nullpointer crash ([GitHub Issue + #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) +- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, + protobuf-java-util to 3.21.11. ## Kotlin @@ -125,11 +132,13 @@ library. The Kotlin extensions library has no additional updates. # 20.3.0 -- [changed] Migrated [inappmessaging] Display to use standard Firebase executors. +- [changed] Migrated [inappmessaging] Display to use standard Firebase + executors. - [changed] Moved Task continuations off the main thread. -- [feature] Added a new API for - [removing a dismiss listener](). - (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: .external}) +- [feature] Added a new API for [removing a dismiss + listener](). + (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: + .external}) ## Kotlin @@ -145,15 +154,18 @@ library. The Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-inappmessaging-display` 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-inappmessaging-display-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. + .external} to `firebase-inappmessaging-display-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. # 20.1.3 -- [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 @@ -162,10 +174,11 @@ library. The Kotlin extensions library has no additional updates. # 20.1.2 -- [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. +- [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 @@ -201,7 +214,8 @@ library. The Kotlin extensions library has no additional updates. # 19.1.5 -- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app message. +- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app + message. ## Kotlin @@ -210,8 +224,8 @@ library. The Kotlin extensions library has no additional updates. # 19.1.4 -- [fixed] Fixed in-app message button click not working in Android 11 because of package visibility - changes. +- [fixed] Fixed in-app message button click not working in Android 11 because + of package visibility changes. ## Kotlin @@ -238,9 +252,10 @@ library. The Kotlin extensions library has no additional updates. # 19.1.1 -- [fixed] Improved link handling on devices without any browser installed or without Chrome - installed. -- [feature] Added the ability to register a dismiss listener that reacts to message dismissal. +- [fixed] Improved link handling on devices without any browser installed or + without Chrome installed. +- [feature] Added the ability to register a dismiss listener that reacts to + message dismissal. ## Kotlin @@ -249,9 +264,10 @@ library. The Kotlin extensions library has no additional updates. # 19.1.0 -- [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. +- [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 @@ -260,13 +276,15 @@ library. The Kotlin extensions library has no additional updates. # 19.0.7 -- [fixed] Improved handling of activity transitions. (GitHub - [Issue #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and - [Issue #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. +- [fixed] Improved handling of activity transitions. (GitHub [Issue + #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and [Issue + #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} +{% include +"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" +%} ## Kotlin @@ -275,8 +293,9 @@ library. The Kotlin extensions library has no additional updates. # 19.0.6 -- [fixed] Fixed issue causing apps to become unresponsive in limited network conditions. - [GitHub Issue #1430](//github.com/firebase/firebase-android-sdk/issues/1430) +- [fixed] Fixed issue causing apps to become unresponsive in limited network + conditions. [GitHub Issue + #1430](//github.com/firebase/firebase-android-sdk/issues/1430) ## Kotlin @@ -285,8 +304,8 @@ library. The Kotlin extensions library has no additional updates. # 19.0.5 -- [fixed] Fixed issue where campaigns with frequency limits were not properly displaying multiple - times. +- [fixed] Fixed issue where campaigns with frequency limits were not properly + displaying multiple times. ## Kotlin @@ -320,20 +339,21 @@ library. The Kotlin extensions library has no additional updates. ## Kotlin -- [feature] The beta release of a [inappmessaging] Display Android library with Kotlin extensions is - now available. The Kotlin extensions library transitively includes the base - `firebase-inappmessaging-display` library. To learn more, visit the - [[inappmessaging] Display KTX documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/display/ktx/package-summary). +- [feature] The beta release of a [inappmessaging] Display Android library with + Kotlin extensions is now available. The Kotlin extensions library + transitively includes the base `firebase-inappmessaging-display` library. To + learn more, visit the [[inappmessaging] Display KTX + documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/display/ktx/package-summary). # 19.0.1 -- [changed] Internal changes to accommodate open-sourcing of the library and to ensure functionality - alignment with other SDK releases. +- [changed] Internal changes to accommodate open-sourcing of the library and to + ensure functionality alignment with other SDK releases. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.2 @@ -344,20 +364,23 @@ library. The Kotlin extensions library has no additional updates. # 17.2.0 - [feature] Adds support for card in-app messages. -- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app messages. +- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app + messages. # 17.1.1 -- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API level 19 (KitKat). The - underlying issue was that [firestore] and [cloud_functions] couldn't agree on which ciphers to - use; this update fixes this issue by overriding the set of ciphers that they use. Refer to - [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for more - information. +- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API + level 19 (KitKat). The underlying issue was that [firestore] and + [cloud_functions] couldn't agree on which ciphers to use; this update fixes + this issue by overriding the set of ciphers that they use. Refer to [GitHub + issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for + more information. # 17.1.0 -- [feature] Adds functionality to programmatically register listeners for updates on in-app - engagement (for example, impression, click, display errors). See +- [feature] Adds functionality to programmatically register listeners for + updates on in-app engagement (for example, impression, click, display + errors). See [`FirebaseInAppMessaging.addClickListener()`]() for more details. @@ -367,17 +390,16 @@ library. The Kotlin extensions library has no additional updates. # 17.0.3 -- [fixed] Improved caching logic, added safeguards for cache expiration, and cleaned up API surface - to prepare for open sourcing. +- [fixed] Improved caching logic, added safeguards for cache expiration, and + cleaned up API surface to prepare for open sourcing. # 17.0.1 -- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built into the same app, - because of an obfuscation collision. +- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built + into the same app, because of an obfuscation collision. # 17.0.0 -- [feature] The initial public beta release of the Firebase In-App Messaging Display SDK for Android - is now available. To learn more, see the - [Firebase In-App Messaging documentation](/docs/in-app-messaging). - +- [feature] The initial public beta release of the Firebase In-App Messaging + Display SDK for Android is now available. To learn more, see the [Firebase + In-App Messaging documentation](/docs/in-app-messaging). diff --git a/firebase-inappmessaging/CHANGELOG.md b/firebase-inappmessaging/CHANGELOG.md index 860b375f496..c5a7fb3fba1 100644 --- a/firebase-inappmessaging/CHANGELOG.md +++ b/firebase-inappmessaging/CHANGELOG.md @@ -14,11 +14,12 @@ # 22.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 - 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). +- [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). # 21.0.2 @@ -52,8 +53,8 @@ The Kotlin extensions library has no additional updates. # 20.4.1 -- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called (GitHub - [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) +- [fixed] Fixed FirebaseInAppMessagingDisplayErrorListener not being called + (GitHub [#5644](//github.com/firebase/firebase-android-sdk/issues/5644)) ## Kotlin @@ -63,15 +64,18 @@ The Kotlin extensions library has no additional updates. # 20.4.0 - [changed] Added Kotlin extensions (KTX) APIs from - `com.google.firebase:firebase-inappmessaging-ktx` to `com.google.firebase:firebase-inappmessaging` - under the `com.google.firebase.inappmessaging` 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-inappmessaging-ktx` have been added - to `com.google.firebase:firebase-inappmessaging` under the `com.google.firebase.inappmessaging` - package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-inappmessaging-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) + `com.google.firebase:firebase-inappmessaging-ktx` to + `com.google.firebase:firebase-inappmessaging` under the + `com.google.firebase.inappmessaging` 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-inappmessaging-ktx` have been added to + `com.google.firebase:firebase-inappmessaging` under the + `com.google.firebase.inappmessaging` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-inappmessaging-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 @@ -80,8 +84,8 @@ The Kotlin extensions library has no additional updates. # 20.3.5 -- [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 @@ -113,9 +117,10 @@ The Kotlin extensions library has no additional updates. # 20.3.1 -- [fixed] Fixed nullpointer crash - ([GitHub Issue #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) -- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11. +- [fixed] Fixed nullpointer crash ([GitHub Issue + #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) +- [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, + protobuf-java-util to 3.21.11. ## Kotlin @@ -126,9 +131,10 @@ The Kotlin extensions library has no additional updates. - [changed] Migrated [inappmessaging] to use standard Firebase executors. - [changed] Moved Task continuations off the main thread. -- [feature] Added a new API for - [removing a dismiss listener](). - (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: .external}) +- [feature] Added a new API for [removing a dismiss + listener](). + (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: + .external}) ## Kotlin @@ -144,15 +150,18 @@ The Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-inappmessaging` 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-inappmessaging-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. + .external} to `firebase-inappmessaging-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. # 20.1.3 -- [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 @@ -161,10 +170,11 @@ The Kotlin extensions library has no additional updates. # 20.1.2 -- [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. +- [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 @@ -200,7 +210,8 @@ The Kotlin extensions library has no additional updates. # 19.1.5 -- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app message. +- [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app + message. ## Kotlin @@ -209,8 +220,8 @@ The Kotlin extensions library has no additional updates. # 19.1.4 -- [fixed] Fixed in-app message button click not working in Android 11 because of package visibility - changes. +- [fixed] Fixed in-app message button click not working in Android 11 because + of package visibility changes. ## Kotlin @@ -237,9 +248,10 @@ The Kotlin extensions library has no additional updates. # 19.1.1 -- [fixed] Improved link handling on devices without any browser installed or without Chrome - installed. -- [feature] Added the ability to register a dismiss listener that reacts to message dismissal. +- [fixed] Improved link handling on devices without any browser installed or + without Chrome installed. +- [feature] Added the ability to register a dismiss listener that reacts to + message dismissal. ## Kotlin @@ -248,9 +260,10 @@ The Kotlin extensions library has no additional updates. # 19.1.0 -- [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. +- [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 @@ -259,13 +272,15 @@ The Kotlin extensions library has no additional updates. # 19.0.7 -- [fixed] Improved handling of activity transitions. (GitHub - [Issue #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and - [Issue #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. +- [fixed] Improved handling of activity transitions. (GitHub [Issue + #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and [Issue + #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} +{% include +"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" +%} ## Kotlin @@ -274,8 +289,9 @@ The Kotlin extensions library has no additional updates. # 19.0.6 -- [fixed] Fixed issue causing apps to become unresponsive in limited network conditions. - [GitHub Issue #1430](//github.com/firebase/firebase-android-sdk/issues/1430) +- [fixed] Fixed issue causing apps to become unresponsive in limited network + conditions. [GitHub Issue + #1430](//github.com/firebase/firebase-android-sdk/issues/1430) ## Kotlin @@ -284,8 +300,8 @@ The Kotlin extensions library has no additional updates. # 19.0.5 -- [fixed] Fixed issue where campaigns with frequency limits were not properly displaying multiple - times. +- [fixed] Fixed issue where campaigns with frequency limits were not properly + displaying multiple times. ## Kotlin @@ -319,20 +335,21 @@ The Kotlin extensions library has no additional updates. ## Kotlin -- [feature] The beta release of a [inappmessaging] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base `firebase-inappmessaging` - library. To learn more, visit the - [[inappmessaging] KTX documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/ktx/package-summary). +- [feature] The beta release of a [inappmessaging] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-inappmessaging` library. To learn more, visit the + [[inappmessaging] KTX + documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/ktx/package-summary). # 19.0.1 -- [changed] Internal changes to accommodate open-sourcing of the library and to ensure functionality - alignment with other SDK releases. +- [changed] Internal changes to accommodate open-sourcing of the library and to + ensure functionality alignment with other SDK releases. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.2 @@ -342,20 +359,23 @@ The Kotlin extensions library has no additional updates. # 17.2.0 - [feature] Adds support for card in-app messages. -- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app messages. +- [feature] Adds direct triggering (via [inappmessaging] SDK) of in-app + messages. # 17.1.1 -- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API level 19 (KitKat). The - underlying issue was that [firestore] and [cloud_functions] couldn't agree on which ciphers to - use; this update fixes this issue by overriding the set of ciphers that they use. Refer to - [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for more - information. +- [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API + level 19 (KitKat). The underlying issue was that [firestore] and + [cloud_functions] couldn't agree on which ciphers to use; this update fixes + this issue by overriding the set of ciphers that they use. Refer to [GitHub + issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for + more information. # 17.1.0 -- [feature] Adds functionality to programmatically register listeners for updates on in-app - engagement (for example, impression, click, display errors). See +- [feature] Adds functionality to programmatically register listeners for + updates on in-app engagement (for example, impression, click, display + errors). See [`FirebaseInAppMessaging.addClickListener()`]() for more details. @@ -365,17 +385,17 @@ The Kotlin extensions library has no additional updates. # 17.0.3 -- [fixed] Improved caching logic, added safeguards for cache expiration, and cleaned up API surface - to prepare for open sourcing the [inappmessaging]-display SDK. +- [fixed] Improved caching logic, added safeguards for cache expiration, and + cleaned up API surface to prepare for open sourcing the + [inappmessaging]-display SDK. # 17.0.1 -- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built into the same app, - because of an obfuscation collision. +- [fixed] Fixed an issue where [fiam] and Firestore could not be included/built + into the same app, because of an obfuscation collision. # 17.0.0 -- [feature] The initial public beta release of the Firebase In-App Messaging SDK for Android is now - available. To learn more, see the - [Firebase In-App Messaging documentation](/docs/in-app-messaging). - +- [feature] The initial public beta release of the Firebase In-App Messaging + SDK for Android is now available. To learn more, see the [Firebase In-App + Messaging documentation](/docs/in-app-messaging). diff --git a/firebase-installations-interop/CHANGELOG.md b/firebase-installations-interop/CHANGELOG.md index 29be6ec122c..a997684d910 100644 --- a/firebase-installations-interop/CHANGELOG.md +++ b/firebase-installations-interop/CHANGELOG.md @@ -4,4 +4,3 @@ - [changed] Release to align with installations release - [changed] Release to align with ktx changes - diff --git a/firebase-installations/CHANGELOG.md b/firebase-installations/CHANGELOG.md index 4ac6a598a53..2de31f23feb 100644 --- a/firebase-installations/CHANGELOG.md +++ b/firebase-installations/CHANGELOG.md @@ -18,11 +18,12 @@ # 19.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 - 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). +- [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). # 18.0.0 @@ -35,16 +36,19 @@ The Kotlin extensions library has no additional updates. # 17.2.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-installations-ktx` - to `com.google.firebase:firebase-installations` under the `com.google.firebase.installations` - 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-installations-ktx` have been added to - `com.google.firebase:firebase-installations` under the `com.google.firebase.installations` - package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-installations-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-installations-ktx` to + `com.google.firebase:firebase-installations` under the + `com.google.firebase.installations` 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-installations-ktx` have been added to + `com.google.firebase:firebase-installations` under the + `com.google.firebase.installations` package, and all the Kotlin extensions + (KTX) APIs in `com.google.firebase:firebase-installations-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 @@ -57,12 +61,11 @@ The Kotlin extensions library has no additional updates. # 17.1.2 -- [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. # 17.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [Firebase Instance ID v21.1.0 release notes](/support/release-notes/android#iid_v21-1-0). - +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [Firebase Instance ID v21.1.0 + release notes](/support/release-notes/android#iid_v21-1-0). diff --git a/firebase-messaging-directboot/CHANGELOG.md b/firebase-messaging-directboot/CHANGELOG.md index ded33f3222c..ebd236f688d 100644 --- a/firebase-messaging-directboot/CHANGELOG.md +++ b/firebase-messaging-directboot/CHANGELOG.md @@ -18,7 +18,8 @@ # 25.0.0 -- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or higher. +- [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or +higher. # 24.1.2 @@ -67,98 +68,103 @@ # 23.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 23.0.8 -- [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). # 23.0.7 -- [changed] Updated `minSdkVersion` to 19 to match [messaging_longer] `minSdkVersion`. -- [changed] Updated `FirebaseMessagingDirectBootReceiver` to match [messaging_longer] - `FirebaseInstanceIdReceiver`. +- [changed] Updated `minSdkVersion` to 19 to match [messaging_longer] + `minSdkVersion`. +- [changed] Updated `FirebaseMessagingDirectBootReceiver` to match + [messaging_longer] `FirebaseInstanceIdReceiver`. - [changed] Removed unused dependencies. # 23.0.6 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.6 release notes](/support/release-notes/android#messaging_v23-0-6). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.6 release + notes](/support/release-notes/android#messaging_v23-0-6). # 23.0.5 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.5 release notes](/support/release-notes/android#messaging_v23-0-5). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.5 release + notes](/support/release-notes/android#messaging_v23-0-5). # 23.0.3 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.3 release notes](/support/release-notes/android#messaging_v23-0-3). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.3 release + notes](/support/release-notes/android#messaging_v23-0-3). # 23.0.2 -- [fixed] Fixed an issue where the messaging component in the [firebase_bom_long] leaked the - `httpcomponents` transitive dependencies. +- [fixed] Fixed an issue where the messaging component in the + [firebase_bom_long] leaked the `httpcomponents` transitive dependencies. # 23.0.1 -- [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. -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.1 release note](/support/release-notes/android#messaging_v23-0-1). +- [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. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.1 release + note](/support/release-notes/android#messaging_v23-0-1). # 23.0.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v23.0.0 release notes](/support/release-notes/android#messaging_v23-0-0). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v23.0.0 release + notes](/support/release-notes/android#messaging_v23-0-0). # 22.0.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. - [changed] Internal changes to support dynamic feature modules. - [changed] Internal infrastructure improvements. # 21.1.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v21.1.0 release notes](/support/release-notes/android#messaging_v21-1-0). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v21.1.0 release + notes](/support/release-notes/android#messaging_v21-1-0). # 21.0.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v21.0.1 release note](/support/release-notes/android#messaging_v21-0-1). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v21.0.1 release + note](/support/release-notes/android#messaging_v21-0-1). # 21.0.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, refer to the - [[messaging_longer] v21.0.0 release note](/support/release-notes/android#messaging_v21-0-0). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, refer to the [[messaging_longer] v21.0.0 release + note](/support/release-notes/android#messaging_v21-0-0). # 20.3.0 -- [changed] Internal changes to the Google Play services interface to improve future development - velocity. +- [changed] Internal changes to the Google Play services interface to improve + future development velocity. # 20.2.4 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the - [Firebase Installations v16.3.3 release notes](/support/release-notes/android#installations_v16-3-3). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Installations v16.3.3 + release notes](/support/release-notes/android#installations_v16-3-3). # 20.2.3 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - details, see the - [`firebase-messaging` v20.2.3 release note](/support/release-notes/android#messaging_v20-2-3). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more details, see the [`firebase-messaging` v20.2.3 release + note](/support/release-notes/android#messaging_v20-2-3). # 20.2.2 @@ -172,14 +178,14 @@ issue was released on July 08, 2020 (see # 20.2.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the - [Firebase Instance ID v20.2.1 release notes](/support/release-notes/android#iid_v20-2-1). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Instance ID v20.2.1 + release notes](/support/release-notes/android#iid_v20-2-1). # 20.2.0 -- [feature] The Firebase Cloud Messaging Direct Boot SDK is now available and supports receiving FCM - messages in Direct Boot mode. See - [Receive FCM messages in direct boot mode](/docs/cloud-messaging/android/receive#receive_fcm_messages_in_direct_boot_mode) +- [feature] The Firebase Cloud Messaging Direct Boot SDK is now available and + supports receiving FCM messages in Direct Boot mode. See [Receive FCM + messages in direct boot + mode](/docs/cloud-messaging/android/receive#receive_fcm_messages_in_direct_boot_mode) for more information. - diff --git a/firebase-messaging/CHANGELOG.md b/firebase-messaging/CHANGELOG.md index 870d44e99ef..46443cfbf18 100644 --- a/firebase-messaging/CHANGELOG.md +++ b/firebase-messaging/CHANGELOG.md @@ -8,8 +8,10 @@ # 25.1.0 -- [feature] Added support for FCM registration using Firebase Installation ID (#8087) -- [deprecated] Existing getToken, deleteToken, onNewToken api(s) are deprecated (#8087) +- [feature] Added support for FCM registration using Firebase Installation ID + (#8087) +- [deprecated] Existing getToken, deleteToken, onNewToken api(s) are deprecated + (#8087) # 25.0.2 @@ -21,15 +23,17 @@ # 25.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 - 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). +- [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). # 24.1.2 -- [changed] Added a NamedThreadFactory to WithinAppServiceConnection's service connection Executor. +- [changed] Added a NamedThreadFactory to WithinAppServiceConnection's service + connection Executor. ## Kotlin @@ -38,8 +42,8 @@ Kotlin extensions library has no additional updates. # 24.1.1 -- [changed] Bug fix in SyncTask to always unregister the receiver on the same context on which it - was registered. +- [changed] Bug fix in SyncTask to always unregister the receiver on the same + context on which it was registered. ## Kotlin @@ -48,11 +52,13 @@ Kotlin extensions library has no additional updates. # 24.1.0 -- [deprecated] Deprecated additional FCM upstream messaging methods and updated all upstream methods - to indicate they are now decommissioned. See the - [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more details. -- [changed] Changed WithinAppServiceConnection's ScheduledThreadPoolExecutor's configuration to - allow the thread to stop polling after the timeout task has been canceled. +- [deprecated] Deprecated additional FCM upstream messaging methods and updated + all upstream methods to indicate they are now decommissioned. See the + [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more + details. +- [changed] Changed WithinAppServiceConnection's ScheduledThreadPoolExecutor's + configuration to allow the thread to stop polling after the timeout task has + been canceled. ## Kotlin @@ -75,10 +81,10 @@ Kotlin extensions library has no additional updates. # 24.0.1 -- [changed] Retry Topic Subscribe/Unsubscribe operations with exponential backoff if they hit a - quota error. -- [changed] Checked for notification_open duplicate logging based on message ID instead of the - Activity's Intent. +- [changed] Retry Topic Subscribe/Unsubscribe operations with exponential + backoff if they hit a quota error. +- [changed] Checked for notification_open duplicate logging based on message ID + instead of the Activity's Intent. ## Kotlin @@ -88,7 +94,8 @@ Kotlin extensions library has no additional updates. # 24.0.0 - [changed] Switched Firelog to use the new TransportBackend. -- [changed] Log analytics for notifications displayed by Google Play services on behalf of the app. +- [changed] Log analytics for notifications displayed by Google Play services + on behalf of the app. ## Kotlin @@ -106,15 +113,16 @@ Kotlin extensions library has no additional updates. # 23.4.0 -- [changed] Called messageHandled() after a message has been handled to indicate - that the message has been handled successfully. +- [changed] Called messageHandled() after a message has been handled to + indicate that the message has been handled successfully. - [changed] Added an internal identifier to Firelog logging for compliance. # 23.3.1 -- [changed] Added metadata to FirebaseInstanceIdReceiver to signal that it finishes background - broadcasts after the message has been handled. -- [changed] Specified notification's dismiss intent target via action instead of component name. +- [changed] Added metadata to FirebaseInstanceIdReceiver to signal that it + finishes background broadcasts after the message has been handled. +- [changed] Specified notification's dismiss intent target via action instead + of component name. ## Kotlin @@ -123,15 +131,18 @@ Kotlin extensions library has no additional updates. # 23.3.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-messaging-ktx` to - `com.google.firebase:firebase-messaging` under the `com.google.firebase.messaging` 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-messaging-ktx` have been added to - `com.google.firebase:firebase-messaging` under the `com.google.firebase.messaging` package, and - all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-messaging-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-messaging-ktx` to + `com.google.firebase:firebase-messaging` under the + `com.google.firebase.messaging` 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-messaging-ktx` + have been added to `com.google.firebase:firebase-messaging` under the + `com.google.firebase.messaging` package, and all the Kotlin extensions (KTX) + APIs in `com.google.firebase:firebase-messaging-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 @@ -140,14 +151,16 @@ Kotlin extensions library has no additional updates. # 23.2.1 -- [changed] Changed to finish a background broadcast after the message has been handled, subject to - a timeout. This keeps the `FirebaseMessagingService`'s process in an active state while it is - handling an FCM message, up to the 20 seconds allowed. +- [changed] Changed to finish a background broadcast after the message has been + handled, subject to a timeout. This keeps the `FirebaseMessagingService`'s + process in an active state while it is handling an FCM message, up to the 20 + seconds allowed. # 23.2.0 - [deprecated] Deprecated FCM upstream messaging. See the - [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more details. + [FAQ](https://firebase.google.com/support/faq#fcm-23-deprecation) for more + details. ## Kotlin @@ -157,7 +170,8 @@ Kotlin extensions library has no additional updates. # 23.1.2 - [fixed] Fixed a breakage related to Jetpack core library related to an - [upstream update](https://android-review.googlesource.com/c/platform/frameworks/support/+/2399893). + [upstream + update](https://android-review.googlesource.com/c/platform/frameworks/support/+/2399893). - [changed] Updated JavaLite, protoc, protobuf-java-util to 3.21.11. ## Kotlin @@ -176,23 +190,26 @@ Kotlin extensions library has no additional updates. # 23.1.0 -- [unchanged] Updated to accommodate the release of the updated [messaging_longer] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated + [messaging_longer] Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-messaging` 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-messaging-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. + .external} to `firebase-messaging-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. # 23.0.8 -- [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 @@ -201,8 +218,8 @@ Kotlin extensions library has no additional updates. # 23.0.7 -- [changed] Message broadcasts now finish immediately after binding to the service. This change - should reduce the chance of ANRs. +- [changed] Message broadcasts now finish immediately after binding to the + service. This change should reduce the chance of ANRs. ## Kotlin @@ -211,10 +228,12 @@ Kotlin extensions library has no additional updates. # 23.0.6 -- [changed] Added the `POST_NOTIFICATIONS` permission to enable posting notifications when targeting - SDK level 33. See [messaging] guidance on how to - [request runtime notification permission on Android 13+](/docs/cloud-messaging/android/client#request-permission13) -- [fixed] Added an annotation to an internal class to fix a missing class warning. +- [changed] Added the `POST_NOTIFICATIONS` permission to enable posting + notifications when targeting SDK level 33. See [messaging] guidance on how to + [request runtime notification permission on Android + 13+](/docs/cloud-messaging/android/client#request-permission13) +- [fixed] Added an annotation to an internal class to fix a missing class + warning. ## Kotlin @@ -223,9 +242,11 @@ Kotlin extensions library has no additional updates. # 23.0.5 -- [fixed] Fixed a dependency on the `firebase-datatransport` layer. - ([GitHub #3716](https://github.com/firebase/firebase-android-sdk/issues/3716){: .external}) -- [fixed] Upgraded logging priority for message delivery events to avoid dropped logs. +- [fixed] Fixed a dependency on the `firebase-datatransport` layer. ([GitHub + #3716](https://github.com/firebase/firebase-android-sdk/issues/3716){: + .external}) +- [fixed] Upgraded logging priority for message delivery events to avoid + dropped logs. ## Kotlin @@ -235,8 +256,8 @@ Kotlin extensions library has no additional updates. # 23.0.3 - [fixed] Removed test resources from library. -- [fixed] Changed to catch `RuntimeException` when getting the `Bundle` from an `Activity Intent` - while checking for notification analytics data. +- [fixed] Changed to catch `RuntimeException` when getting the `Bundle` from an + `Activity Intent` while checking for notification analytics data. - [changed] Internal changes to notification building methods. ## Kotlin @@ -246,8 +267,8 @@ Kotlin extensions library has no additional updates. # 23.0.2 -- [fixed] Fixed an issue where the messaging component in the [firebase_bom_long] leaked the - `httpcomponents` transitive dependencies. +- [fixed] Fixed an issue where the messaging component in the + [firebase_bom_long] leaked the `httpcomponents` transitive dependencies. ## Kotlin @@ -256,16 +277,20 @@ Kotlin extensions library has no additional updates. # 23.0.1 -- [changed] Updated to the latest version of the `firebase-datatransport` library. -- [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. -- [fixed] On Android 7.0 and earlier, the SDK now logs that a notification was opened after - `onActivityCreated` to avoid a race condition when unparceling the extras Bundle. -- [fixed] Switched to stopping an image download by canceling a `Future` to interrupt the download - thread. This change avoids errors that can occur in the image downloading library when trying to - close the stream on a different thread than the one that started the download. +- [changed] Updated to the latest version of the `firebase-datatransport` + library. +- [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. +- [fixed] On Android 7.0 and earlier, the SDK now logs that a notification was + opened after `onActivityCreated` to avoid a race condition when unparceling + the extras Bundle. +- [fixed] Switched to stopping an image download by canceling a `Future` to + interrupt the download thread. This change avoids errors that can occur in + the image downloading library when trying to close the stream on a different + thread than the one that started the download. - [fixed] Fixed reference documentation for [`RemoteMessage.getMessageId()`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage#public-string-getmessageid) and updated obsolete references to Google Cloud Messaging (GCM). @@ -277,14 +302,16 @@ Kotlin extensions library has no additional updates. # 23.0.0 -- [changed] Due to its [dependency on Google Play services](/docs/android/android-play-services), - this SDK now requires devices and emulators to target API level 19 (KitKat) or higher and to use - Android 4.4 or higher. -- [feature] Added methods for determining and controlling whether Google Play services is set as the - app’s notification delegate. By default, FCM will now set Google Play services as the app’s - notification delegate so that it is allowed to display notifications for the app. This could be - used in the future to show an app’s notifications without needing to start the app, which may - improve message reliability and timeliness. +- [changed] Due to its [dependency on Google Play + services](/docs/android/android-play-services), this SDK now requires devices + and emulators to target API level 19 (KitKat) or higher and to use Android + 4.4 or higher. +- [feature] Added methods for determining and controlling whether Google Play + services is set as the app’s notification delegate. By default, FCM will now + set Google Play services as the app’s notification delegate so that it is + allowed to display notifications for the app. This could be used in the + future to show an app’s notifications without needing to start the app, which + may improve message reliability and timeliness. ## Kotlin @@ -293,15 +320,16 @@ Kotlin extensions library has no additional updates. # 22.0.0 -- [changed] Removed dependency on the deprecated Firebase Instance ID SDK. Caution: **This is a - breaking change for apps that use [messaging] and the deprecated Firebase Instance ID API to - manage registration tokens.**
We strongly recommend - [migrating to [messaging]'s token APIs](/docs/projects/manage-installations#fid-iid). If you're - unable to migrate to the replacement APIs, add a direct dependency on the `firebase-iid` library - to your `build.gradle` file. -- [feature] Changed to open an `Activity` directly when a notification is tapped instead of passing - it through `FirebaseMessagingService`. This change is to comply with Android 12 notification - trampoline restrictions. +- [changed] Removed dependency on the deprecated Firebase Instance ID SDK. + Caution: **This is a breaking change for apps that use [messaging] and the + deprecated Firebase Instance ID API to manage registration tokens.**
We + strongly recommend [migrating to [messaging]'s token + APIs](/docs/projects/manage-installations#fid-iid). If you're unable to + migrate to the replacement APIs, add a direct dependency on the + `firebase-iid` library to your `build.gradle` file. +- [feature] Changed to open an `Activity` directly when a notification is + tapped instead of passing it through `FirebaseMessagingService`. This change + is to comply with Android 12 notification trampoline restrictions. - [feature] Internal changes to use proto instead of JSON for logging. - [changed] Internal changes to support dynamic feature modules. - [changed] Internal infrastructure improvements. @@ -313,11 +341,12 @@ Kotlin extensions library has no additional updates. # 21.1.0 -- [feature] Migrated internal handling of new token callbacks and notification actions from Firebase - Instance ID to [firebase_messaging]. -- [feature] Added functionality to generate [messaging] tokens from `FirebaseMessaging.getToken`, - while continuing to call through to Firebase Instance ID if it is present. This will allow - [firebase_messaging] to remove its dependency on Firebase Instance ID in the future. +- [feature] Migrated internal handling of new token callbacks and notification + actions from Firebase Instance ID to [firebase_messaging]. +- [feature] Added functionality to generate [messaging] tokens from + `FirebaseMessaging.getToken`, while continuing to call through to Firebase + Instance ID if it is present. This will allow [firebase_messaging] to remove + its dependency on Firebase Instance ID in the future. ## Kotlin @@ -336,10 +365,12 @@ Kotlin extensions library has no additional updates. # 21.0.0 -- [feature] Migrated auto-initialization from Firebase Instance ID to [firebase_messaging]. -- [feature] Added a check for incompatible versions of Firebase Instance ID. An exception is thrown - during instantiation if one is found. -- [fixed] Fixed an issue where events were erronously logged to [firebase_analytics] twice. +- [feature] Migrated auto-initialization from Firebase Instance ID to + [firebase_messaging]. +- [feature] Added a check for incompatible versions of Firebase Instance ID. An + exception is thrown during instantiation if one is found. +- [fixed] Fixed an issue where events were erronously logged to + [firebase_analytics] twice. ## Kotlin @@ -353,25 +384,27 @@ Kotlin extensions library has no additional updates. and [`deleteToken`]() methods directly to `FirebaseMessaging`. -- [changed] Internal changes to the Google Play services interface to improve future development - velocity. +- [changed] Internal changes to the Google Play services interface to improve + future development velocity. ## Kotlin -- [feature] The [messaging_longer] Android library with Kotlin extensions is now available. The - Kotlin extensions library transitively includes the base `firebase-messaging` library. To learn - more, visit the - [[messaging_longer] KTX documentation](/docs/reference/kotlin/com/google/firebase/messaging/ktx/package-summary). +- [feature] The [messaging_longer] Android library with Kotlin extensions is + now available. The Kotlin extensions library transitively includes the base + `firebase-messaging` library. To learn more, visit the [[messaging_longer] + KTX + documentation](/docs/reference/kotlin/com/google/firebase/messaging/ktx/package-summary). # 20.2.4 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the - [Firebase Installations v16.3.3 release notes](/support/release-notes/android#installations_v16-3-3). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Installations v16.3.3 + release notes](/support/release-notes/android#installations_v16-3-3). # 20.2.3 -- [fixed] Fixed an issue that caused an app to crash when a user tapped on a received notification. +- [fixed] Fixed an issue that caused an app to crash when a user tapped on a + received notification. # 20.2.2 @@ -383,26 +416,27 @@ released on July 08, 2020 (see [v20.2.3](/support/release-notes/android#messagin # 20.2.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. For more - information, refer to the - [Firebase Instance ID v20.2.1 release notes](/support/release-notes/android#iid_v20-2-1). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. For more information, refer to the [Firebase Instance ID v20.2.1 + release notes](/support/release-notes/android#iid_v20-2-1). # 20.2.0 -- [changed] Internal changes to ensure functionality alignment with other SDK releases (for more - information, refer to the - [[messaging_longer] Direct Boot v20.2.0 release notes](/support/release-notes/android#messaging-directboot_v20-2-0)). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases (for more information, refer to the [[messaging_longer] Direct Boot + v20.2.0 release + notes](/support/release-notes/android#messaging-directboot_v20-2-0)). # 20.1.7 -- [changed] Internal changes to ensure functionality alignment with other SDK releases (for more - information, refer to the - [Firebase Instance ID v20.1.7 release notes](/support/release-notes/android#iid_v20-1-7)). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases (for more information, refer to the [Firebase Instance ID v20.1.7 + release notes](/support/release-notes/android#iid_v20-1-7)). # 20.1.6 -- [fixed] Fixed a bug in topic syncing that was causing increased usage of shared system resources - when waiting for a working network connection. +- [fixed] Fixed a bug in topic syncing that was causing increased usage of + shared system resources when waiting for a working network connection. # 20.1.5 @@ -411,7 +445,8 @@ resources which can negatively impact the performance of a user's device. To avo **update your app's version of `firebase-messaging` to [v20.1.6](/support/release-notes/android#messaging_v20-1-6) or later**. -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 20.1.4 @@ -420,20 +455,23 @@ resources which can negatively impact the performance of a user's device. To avo **update your app's version of `firebase-messaging` to [v20.1.6](/support/release-notes/android#messaging_v20-1-6) or later**. -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 20.1.3 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 20.1.2 **As of v20.1.1, the [messaging_longer] SDK depends on the [installations_sdk]. Learn about possible impacts in the [v20.1.1 release notes](/support/release-notes/android#messaging_v20-1-1).** -- [changed] Internal changes to ensure functionality alignment with other SDK releases (for more - information, refer to the bug fix in the - [Firebase Instance ID v20.1.1 release notes](/support/release-notes/android#iid_v20-1-1)). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases (for more information, refer to the bug fix in the [Firebase + Instance ID v20.1.1 release + notes](/support/release-notes/android#iid_v20-1-1)). # 20.1.1 @@ -441,23 +479,27 @@ Warning: This version of `firebase-messaging` (v20.1.1) has known issues involvi and should not be used. A fix for these issues was released on [March 03, 2020](/support/release-notes/android#2020-03-03). -- [changed] Changed the default for notification titles. Previously, an empty title was replaced - with the app's label, but now an empty title causes the notification title to be omitted. +- [changed] Changed the default for notification titles. Previously, an empty + title was replaced with the app's label, but now an empty title causes the + notification title to be omitted. - [fixed] Fixed an issue that could cause ANRs when receiving messages. -- [changed] [messaging_longer] now transitively depends on the [installations_sdk]. After updating - to the latest dependency versions, make sure that push notifications still work as expected. Also, - be aware of the following: - - The [messaging] registration tokens of installed instances of your apps might change once after - updating dependencies to their latest versions. To learn if your apps are affected, review the - [firebase_installations] documentation. Also, make sure to - monitor [messaging] - registration token generation using the #onNewToken implementation. - - - Apps that use the Firebase auto-initialization process and the Gradle plugin to convert - `google-services.json` into resources are unaffected. However, apps that create their own - `FirebaseOptions` instances must provide a valid API key, Firebase project ID, and application - ID. +- [changed] [messaging_longer] now transitively depends on the + [installations_sdk]. After updating to the latest dependency versions, make + sure that push notifications still work as expected. Also, be aware of the + following: + - The [messaging] registration tokens of installed instances of your apps +might change once after updating dependencies to their latest versions. To +learn if your apps are affected, review the [firebase_installations] documentation. Also, make sure to +monitor +[messaging] registration token generation using the +#onNewToken implementation. + + - Apps that use the Firebase auto-initialization process and the Gradle +plugin to convert `google-services.json` into resources are unaffected. +However, apps that create their own `FirebaseOptions` instances must provide a +valid API key, Firebase project ID, and application ID. # 20.1.0 @@ -466,29 +508,32 @@ and should not be used. A fix for these issues was released on and [`deliveryMetricsExportToBigQueryEnabled()`]() to control and query if messsage delivery metrics are exported to BigQuery. -- [changed] Changed to catch and log NullPointerException when trying to close the image download - stream. This NPE can happen if the image download takes too long and times out. +- [changed] Changed to catch and log NullPointerException when trying to close + the image download stream. This NPE can happen if the image download takes + too long and times out. # 20.0.1 -- [fixed] Fixed notifications on API level 24 and later to display the event time when `event_time` - is set. +- [fixed] Fixed notifications on API level 24 and later to display the event + time when `event_time` is set. # 20.0.0 -- [feature] Added support for more Android notification parameters, including: `ticker`, - `sticky`,`event_time`, `local_only`, `notification_priority`, `default_sound`, - `default_vibrate_timings`, `default_light_settings`, `visibility`, `notification_count`, - `vibrate_timings` and `light_settings`. +- [feature] Added support for more Android notification parameters, including: + `ticker`, `sticky`,`event_time`, `local_only`, `notification_priority`, + `default_sound`, `default_vibrate_timings`, `default_light_settings`, + `visibility`, `notification_count`, `vibrate_timings` and `light_settings`. - [feature] Added support for Android notifications that include an image. -- [changed] Added nullability annotations to improve the Kotlin developer experience. +- [changed] Added nullability annotations to improve the Kotlin developer + experience. # 19.0.1 -- [fixed] Fixed an issue where `FirebaseMessagingService.onNewToken` would be invoked for tokens - created for non-default FirebaseApp instances. -- [fixed] SDK now only retries topic subscriptions and token registration on the following errors: - "ERROR_SERVICE_NOT_AVAILABLE" and "ERROR_INTERNAL_SERVER_ERROR". +- [fixed] Fixed an issue where `FirebaseMessagingService.onNewToken` would be + invoked for tokens created for non-default FirebaseApp instances. +- [fixed] SDK now only retries topic subscriptions and token registration on + the following errors: "ERROR_SERVICE_NOT_AVAILABLE" and + "ERROR_INTERNAL_SERVER_ERROR". # 18.0.0 @@ -496,8 +541,9 @@ and should not be used. A fix for these issues was released on # 17.6.0 -- [feature] Added functionality to automatically download and show an image in a notification - message. Retrieve the image URL set in the message with the `getImageUrl` method in +- [feature] Added functionality to automatically download and show an image in + a notification message. Retrieve the image URL set in the message with the + `getImageUrl` method in [`RemoteMessage.Notification`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Notification). # 17.5.0 @@ -517,26 +563,28 @@ and should not be used. A fix for these issues was released on # 17.3.2 -- [fixed] Fixed an issue that would occasionally cause apps to crash with Android Not Responding - (ANR) errors when receiving a message. +- [fixed] Fixed an issue that would occasionally cause apps to crash with + Android Not Responding (ANR) errors when receiving a message. # 17.3.0 -- [changed] Incremented the version number to 17.3.0 due to internal SDK changes. These changes do - not affect client functionality, and developers do not need to take any action. +- [changed] Incremented the version number to 17.3.0 due to internal SDK + changes. These changes do not affect client functionality, and developers do + not need to take any action. # 17.1.0 - [feature] Added `onNewToken` method to [`FirebaseMessagingService`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService) - which is invoked when the app gets a new Instance ID token or its existing token changes. + which is invoked when the app gets a new Instance ID token or its existing + token changes. # 17.0.0 - [feature] Added `getPriority()` and `getOriginalPriority()` methods to [`RemoteMessage`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage). - [changed] The methods `subscribeToTopic()` and `unsubscribeFromTopic()` on - [`FirebaseMessaging`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging) now - return a [`Task`](/docs/reference/android/com/google/android/gms/tasks/Task) that can be used to - see when the request has completed. - + [`FirebaseMessaging`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging) + now return a + [`Task`](/docs/reference/android/com/google/android/gms/tasks/Task) that can + be used to see when the request has completed. diff --git a/firebase-ml-modeldownloader/CHANGELOG.md b/firebase-ml-modeldownloader/CHANGELOG.md index 2ce5f532b77..6d0ed48298d 100644 --- a/firebase-ml-modeldownloader/CHANGELOG.md +++ b/firebase-ml-modeldownloader/CHANGELOG.md @@ -1,13 +1,14 @@ # Unreleased -- [changed] Updated the Firebase ML deprecation message to link to the Firebase ML documentation for migration options. +- [changed] Updated the Firebase ML deprecation message to link to the Firebase + ML documentation for migration options. # 26.1.0 -- [deprecated] Firebase ML is deprecated and will be shut down on June 15, 2027. - To host custom models, you must migrate to another solution. You can use Cloud Storage for Firebase - as an alternative for hosting custom models. For more info, see - https://firebase.google.com/docs/ml/migrate-to-cloud-storage. +- [deprecated] Firebase ML is deprecated and will be shut down on June 15, + 2027. To host custom models, you must migrate to another solution. You can +use Cloud Storage for Firebase as an alternative for hosting custom models. For +more info, see https://firebase.google.com/docs/ml/migrate-to-cloud-storage. # 26.0.2 @@ -19,11 +20,12 @@ # 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 - 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). +- [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). # 25.0.1 @@ -55,8 +57,9 @@ library. The Kotlin extensions library has no additional updates. # 24.2.2 -- [fixed] Fixed `SecurityException` where the `RECEIVER_EXPORTED` or `RECEIVER_NOT_EXPORTED` flag - should be specified when registerReceiver is being used. +- [fixed] Fixed `SecurityException` where the `RECEIVER_EXPORTED` or + `RECEIVER_NOT_EXPORTED` flag should be specified when registerReceiver is + being used. [#5597](https://github.com/firebase/firebase-android-sdk/pull/5597) ## Kotlin @@ -78,14 +81,18 @@ library. The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-ml-modeldownloader-ktx` to `com.google.firebase:firebase-ml-modeldownloader` under the - `com.google.firebase.ml.modeldownloader` 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-ml-modeldownloader-ktx` have been - added to `com.google.firebase:firebase-ml-modeldownloader` under the - `com.google.firebase.ml.modeldownloader` package, and all the Kotlin extensions (KTX) APIs in - `com.google.firebase:firebase-ml-modeldownloader-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) + `com.google.firebase.ml.modeldownloader` 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-ml-modeldownloader-ktx` have been added to + `com.google.firebase:firebase-ml-modeldownloader` under the + `com.google.firebase.ml.modeldownloader` package, and all the Kotlin + extensions (KTX) APIs in + `com.google.firebase:firebase-ml-modeldownloader-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 @@ -110,8 +117,8 @@ library. The Kotlin extensions library has no additional updates. # 24.1.1 - [fixed] Fixed an issue where `FirebaseModelDownloader.getModel` was throwing - `FirebaseMlException.PERMISSION_DENIED` when the model name was empty. It now throws - `FirebaseMlException.INVALID_ARGUMENT` (#4157) + `FirebaseMlException.PERMISSION_DENIED` when the model name was empty. It now + throws `FirebaseMlException.INVALID_ARGUMENT` (#4157) ## Kotlin @@ -120,23 +127,26 @@ library. The Kotlin extensions library has no additional updates. # 24.1.0 -- [unchanged] Updated to accommodate the release of the updated [firebase_ml] Kotlin extensions - library. +- [unchanged] Updated to accommodate the release of the updated [firebase_ml] + Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-ml-modeldownloader` 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-ml-modeldownloader-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. + .external} to `firebase-ml-modeldownloader-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.0.5 -- [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 @@ -145,8 +155,8 @@ library. The Kotlin extensions library has no additional updates. # 24.0.4 -- [fixed] Fixed a race condition that was caused when differently sized models were concurrently - downloaded using this SDK and the Model Downloader from the +- [fixed] Fixed a race condition that was caused when differently sized models + were concurrently downloaded using this SDK and the Model Downloader from the `com.google.firebase:firebase-ml-common` SDK. (#3321) ## Kotlin @@ -156,10 +166,11 @@ library. The Kotlin extensions library has no additional updates. # 24.0.3 -- [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. +- [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 @@ -168,9 +179,10 @@ library. The Kotlin extensions library has no additional updates. # 24.0.2 -- [fixed] Fixed an issue where `FirebaseModelDownloader.getInstance` would crash when using - non-default FirebaseApp instances. (#3321) -- [changed] Updated to the latest version of the `firebase-datatransport` library. +- [fixed] Fixed an issue where `FirebaseModelDownloader.getInstance` would + crash when using non-default FirebaseApp instances. (#3321) +- [changed] Updated to the latest version of the `firebase-datatransport` + library. ## Kotlin @@ -192,14 +204,16 @@ library. The Kotlin extensions library has no additional updates. # 23.0.1 -- [unchanged] Updated to accommodate the release of the [firebase_ml] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the [firebase_ml] Kotlin + extensions library. ## Kotlin -- [feature] The beta release of a [firebase_ml] Android library with Kotlin extensions is now - available. The Kotlin extensions library transitively includes the base - `firebase-ml-model-downloader` library. To learn more, visit the - [[firebase_ml] KTX documentation](/docs/reference/android/com/google/firebase/ml/modeldownloader/package-summary). +- [feature] The beta release of a [firebase_ml] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-ml-model-downloader` library. To learn more, + visit the [[firebase_ml] KTX + documentation](/docs/reference/android/com/google/firebase/ml/modeldownloader/package-summary). # 23.0.0 @@ -210,7 +224,7 @@ The [firebase_ml] Model Downloader SDK provides APIs for downloading models host of the ML Kit Custom Models library (`firebase-ml-model-interpreter`), allowing you to work with custom hosted models without the interpreter API, which is now provided directly by TFLite runtime. -- [feature] Added custom hosted model download and on-device management capabilities. -- [feature] Added ability to get the model download ID, which allows progress tracking of file - downloads. - +- [feature] Added custom hosted model download and on-device management + capabilities. +- [feature] Added ability to get the model download ID, which allows progress + tracking of file downloads. diff --git a/firebase-perf/CHANGELOG.md b/firebase-perf/CHANGELOG.md index a7fa37e9016..973d511ef39 100644 --- a/firebase-perf/CHANGELOG.md +++ b/firebase-perf/CHANGELOG.md @@ -2,10 +2,11 @@ # 22.0.6 -- [fixed] Fixed `_app_start` traces being suppressed on API 34+ devices for typical - real-world apps. The previous timing-window heuristic has been replaced on API 34+ by - `RunningAppProcessInfo.importance` at first capture, which indicates whether the - process was forked to launch an activity. Pre-API-34 behavior is unchanged. [#8103] +- [fixed] Fixed `_app_start` traces being suppressed on API 34+ devices for + typical real-world apps. The previous timing-window heuristic has been + replaced on API 34+ by `RunningAppProcessInfo.importance` at first capture, + which indicates whether the process was forked to launch an activity. + Pre-API-34 behavior is unchanged. [#8103] # 22.0.5 @@ -13,13 +14,15 @@ # 22.0.4 -- [fixed] Fixed StrictMode DiskReadViolation prompted by AppStartTrace setup. [#7340] +- [fixed] Fixed StrictMode DiskReadViolation prompted by AppStartTrace setup. + [#7340] # 22.0.3 -- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. If your app depends - on OkHTTP version 3.x the change is both binary- and Java source-compatible, with a few small - exceptions. See https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more +- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. + If your app depends on OkHTTP version 3.x the change is both binary- and Java + source-compatible, with a few small exceptions. See + https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more details. # 22.0.2 @@ -33,16 +36,18 @@ # 22.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 - 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). +- [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). # 21.0.5 - [changed] Updated `protolite-well-known-types` dependency to v18.0.1 [#6716] -- [fixed] Fixed a bug that allowed invalid payload bytes value in network request metrics [#6721] +- [fixed] Fixed a bug that allowed invalid payload bytes value in network + request metrics [#6721] ## Kotlin @@ -51,8 +56,8 @@ Kotlin extensions library has no additional updates. # 21.0.4 -- [fixed] Fixed a performance issue with shared preferences calling `.apply()` every time a value is - read from remote config (#6407) +- [fixed] Fixed a performance issue with shared preferences calling `.apply()` + every time a value is read from remote config (#6407) ## Kotlin @@ -70,8 +75,8 @@ Kotlin extensions library has no additional updates. # 21.0.2 -- [fixed] Fixed `IllegalStateException` that happened when starting a trace before Firebase - initializes. +- [fixed] Fixed `IllegalStateException` that happened when starting a trace + before Firebase initializes. - [changed] Updated protobuf dependency to `3.25.5` to fix [CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254). @@ -82,8 +87,8 @@ Kotlin extensions library has no additional updates. # 21.0.1 -- [fixed] Fixed an `ExceptionInInitializerError` where the `url.openStream()` causes a crash if - FirebasePerf is not yet initialized (Github #5584). +- [fixed] Fixed an `ExceptionInInitializerError` where the `url.openStream()` + causes a crash if FirebasePerf is not yet initialized (Github #5584). ## Kotlin @@ -114,24 +119,29 @@ Kotlin extensions library has no additional updates. # 20.5.0 -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-perf-ktx` to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` 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-perf-ktx` have been added to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package, and all the - Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-perf-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) +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-perf-ktx` to + `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` + 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-perf-ktx` have + been added to `com.google.firebase:firebase-perf` under the + `com.google.firebase.perf` package, and all the Kotlin extensions (KTX) APIs + in `com.google.firebase:firebase-perf-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) # 20.4.1 - [changed] Updated `firebase-sessions` dependency to v1.0.2 -- [fixed] Make fireperf data collection state is reliable for Firebase Sessions library. +- [fixed] Make fireperf data collection state is reliable for Firebase Sessions + library. # 20.4.0 -- [feature] Integrated with Firebase sessions library to enable upcoming features related to - session-based performance metrics. +- [feature] Integrated with Firebase sessions library to enable upcoming + features related to session-based performance metrics. ## Kotlin @@ -140,7 +150,8 @@ Kotlin extensions library has no additional updates. # 20.3.3 -- [fixed] Fixed app start trace creation where some measured time could be NULL (#4730). +- [fixed] Fixed app start trace creation where some measured time could be NULL + (#4730). - [changed] Adjusted default behavior when remote config fetch fails. ## Kotlin @@ -169,36 +180,40 @@ Kotlin extensions library has no additional updates. # 20.3.0 -- [fixed] Fixed a `NullPointerException` crash when instrumenting screen traces on Android 7, 8, - and 9. (#4146) +- [fixed] Fixed a `NullPointerException` crash when instrumenting screen traces + on Android 7, 8, and 9. (#4146) ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has the following additional updates: -- [feature] Added a - [`trace(String, Trace.() -> T)`]() +- [feature] Added a [`trace(String, Trace.() -> + T)`]() extension function to create a custom trace with the specified name. # 20.2.0 -- [unchanged] Updated to accommodate the release of the updated [perfmon] Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the updated [perfmon] + Kotlin extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` 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-performance-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. + .external} to `firebase-performance-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. # 20.1.1 -- [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 @@ -207,10 +222,12 @@ Kotlin extensions library has no additional updates. # 20.1.0 -- [feature] Added support for out-of-the-box measurement of screen performance metrics for - [Fragments](//developer.android.com/guide/fragments){: .external}. For more details, visit - [Learn about screen rendering performance data](/docs/perf-mon/screen-traces?platform=android). -- [fixed] Fixed a bug where screen traces were not capturing frame metrics for multi-Activity apps. +- [feature] Added support for out-of-the-box measurement of screen performance + metrics for [Fragments](//developer.android.com/guide/fragments){: + .external}. For more details, visit [Learn about screen rendering performance + data](/docs/perf-mon/screen-traces?platform=android). +- [fixed] Fixed a bug where screen traces were not capturing frame metrics for + multi-Activity apps. - [fixed] Excluded custom attributes that have key/value lengths of 0. ## Kotlin @@ -220,13 +237,15 @@ Kotlin extensions library has no additional updates. # 20.0.6 -- [fixed] Fixed a null pointer exception (NPE) when instrumenting network requests. (#3406) -- [fixed] Fixed a bug where incorrect session IDs were associated with some foreground and - background traces. -- [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. +- [fixed] Fixed a null pointer exception (NPE) when instrumenting network + requests. (#3406) +- [fixed] Fixed a bug where incorrect session IDs were associated with some + foreground and background traces. +- [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 @@ -236,8 +255,8 @@ Kotlin extensions library has no additional updates. # 20.0.5 - [feature] Enabled global custom attributes for network request traces. -- [fixed] Updated log statement to differentiate an event being dropped due to rate limiting and - sampling. +- [fixed] Updated log statement to differentiate an event being dropped due to + rate limiting and sampling. ## Kotlin @@ -246,8 +265,8 @@ Kotlin extensions library has no additional updates. # 20.0.4 -- [changed] Improved [perfmon] start up time by 25%. This improvement was achieved by moving some - component initialization to background threads. +- [changed] Improved [perfmon] start up time by 25%. This improvement was + achieved by moving some component initialization to background threads. ## Kotlin @@ -256,10 +275,10 @@ Kotlin extensions library has no additional updates. # 20.0.3 -- [changed] [perfmon] now has a random delay of 5 to 30 seconds before fetching [remote_config] upon - app startup. -- [fixed] Added a validation to stop screen traces with 0 total frames from being sent to the - backend. +- [changed] [perfmon] now has a random delay of 5 to 30 seconds before fetching + [remote_config] upon app startup. +- [fixed] Added a validation to stop screen traces with 0 total frames from + being sent to the backend. ## Kotlin @@ -268,10 +287,11 @@ Kotlin extensions library has no additional updates. # 20.0.2 -- [fixed] Fixed inaccurate calculation of screen activity metrics for multi-activity apps. (#2672) - Note: You may see some changes in data for frozen frames and slow rendering metrics. -- [fixed] Fixed issue where screen traces were not being tracked for Android API levels 23 and - below. +- [fixed] Fixed inaccurate calculation of screen activity metrics for + multi-activity apps. (#2672) Note: You may see some changes in data for + frozen frames and slow rendering metrics. +- [fixed] Fixed issue where screen traces were not being tracked for Android + API levels 23 and below. ## Kotlin @@ -280,8 +300,8 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [feature] Logs for [firebase_perfmon] now contain URLs to view performance data in the - [name_appmanager]. +- [feature] Logs for [firebase_perfmon] now contain URLs to view performance + data in the [name_appmanager]. - [fixed] Fixed `RateLimiter` replenishment logic and unit alignment. ## Kotlin @@ -291,9 +311,10 @@ Kotlin extensions library has no additional updates. # 20.0.0 -- [feature] Introduce Dagger as a dependency injection framework for some parts of the code. -- [changed] Improved the code organization of the SDK (package restructure, code conventions, remove - unncessary annotations). +- [feature] Introduce Dagger as a dependency injection framework for some parts + of the code. +- [changed] Improved the code organization of the SDK (package restructure, + code conventions, remove unncessary annotations). - [changed] Improve the launch time of the SDK. ## Kotlin @@ -303,9 +324,11 @@ Kotlin extensions library has no additional updates. # 19.1.1 -- [feature] The [firebase_perfmon] SDK is now - [open sourced](//github.com/firebase/firebase-android-sdk/tree/master/firebase-perf){: .external}. -- [fixed] Fixed issue on the console logger to avoid throwing `UnknownFormatConversionException`. +- [feature] The [firebase_perfmon] SDK is now [open + sourced](//github.com/firebase/firebase-android-sdk/tree/master/firebase-perf){: + .external}. +- [fixed] Fixed issue on the console logger to avoid throwing + `UnknownFormatConversionException`. ## Kotlin @@ -314,9 +337,10 @@ Kotlin extensions library has no additional updates. # 19.1.0 -- [changed] Removed GMS dependency from [perfmon]. Google Play services installation is no longer - required to use [perfmon]. -- [changed] Improved performance event dispatch wait time from 2 hours to 30 seconds. +- [changed] Removed GMS dependency from [perfmon]. Google Play services + installation is no longer required to use [perfmon]. +- [changed] Improved performance event dispatch wait time from 2 hours to 30 + seconds. ## Kotlin @@ -337,10 +361,10 @@ Kotlin extensions library has no additional updates. Note: We recommend using [perfmon] Gradle plugin v1.3.4+ with this version of the [perfmon] SDK and above. -- [changed] Integrated with the `firebase-datatransport` library for performance log dispatch - mechanism. -- [fixed] Synchronized the access to fix a race condition that was causing a `NullPointerException` - when making network requests. (#2096) +- [changed] Integrated with the `firebase-datatransport` library for + performance log dispatch mechanism. +- [fixed] Synchronized the access to fix a race condition that was causing a + `NullPointerException` when making network requests. (#2096) ## Kotlin @@ -349,45 +373,52 @@ Kotlin extensions library has no additional updates. # 19.0.9 -- [fixed] Created lazy dependency on [firebase_remote_config] to avoid main thread contention issue. - (#1810) -- [changed] Updated the protocol buffer dependency to the `protobuf-javalite` artifact to allow for - backward compatibility. -- [changed] Removed Guava dependency from the SDK to avoid symbol collision with any other SDKs. -- [changed] Removed proguarding for SDK; logcat messages will show original class paths for - debugging. +- [fixed] Created lazy dependency on [firebase_remote_config] to avoid main + thread contention issue. (#1810) +- [changed] Updated the protocol buffer dependency to the `protobuf-javalite` + artifact to allow for backward compatibility. +- [changed] Removed Guava dependency from the SDK to avoid symbol collision + with any other SDKs. +- [changed] Removed proguarding for SDK; logcat messages will show original + class paths for debugging. - [changed] Improved build configurations and dependencies to reduce SDK size. ## Kotlin -- [feature] The [firebase_perfmon] Android library with Kotlin extensions is now available. The - Kotlin extensions library transitively includes the base `firebase-performance` library. To learn - more, visit the - [[perfmon] KTX documentation](/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary). +- [feature] The [firebase_perfmon] Android library with Kotlin extensions is + now available. The Kotlin extensions library transitively includes the base + `firebase-performance` library. To learn more, visit the [[perfmon] KTX + documentation](/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary). # 19.0.8 -- [changed] Updated the [logging message](/docs/perf-mon/get-started-android#view-log-messages) for +- [changed] Updated the [logging + message](/docs/perf-mon/get-started-android#view-log-messages) for performance events. -- [fixed] Silenced [firebase_remote_config] logging triggered by [firebase_perfmon]. (#403) -- [fixed] Removed unnecessary logging. [perfmon] now only logs debug information if the - `firebase_performance_logcat_enabled` setting is `true` in `AndroidManifest.xml`. Visit the - documentation for details about explicitly - [enabling debug logging](/docs/perf-mon/get-started-android#view-log-messages). -- [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an - indirect dependency via the Firebase Instance ID SDK. - - {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} +- [fixed] Silenced [firebase_remote_config] logging triggered by + [firebase_perfmon]. (#403) +- [fixed] Removed unnecessary logging. [perfmon] now only logs debug + information if the `firebase_performance_logcat_enabled` setting is `true` in + `AndroidManifest.xml`. Visit the documentation for details about explicitly + [enabling debug + logging](/docs/perf-mon/get-started-android#view-log-messages). +- [changed] Migrated to use the [firebase_installations] service _directly_ + instead of using an indirect dependency via the Firebase Instance ID SDK. + +{% include +"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" +%} # 19.0.7 -- [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. +- [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. - This update to `firebase-iid` v20.1.5 fixed the following GitHub issues: - [#1454](//github.com/firebase/firebase-android-sdk/issues/1454), - [#1397](//github.com/firebase/firebase-android-sdk/issues/1397), and - [#1339](//github.com/firebase/firebase-android-sdk/issues/1339). +This update to `firebase-iid` v20.1.5 fixed the following GitHub issues: +[#1454](//github.com/firebase/firebase-android-sdk/issues/1454), +[#1397](//github.com/firebase/firebase-android-sdk/issues/1397), and +[#1339](//github.com/firebase/firebase-android-sdk/issues/1339). # 19.0.6 @@ -395,15 +426,17 @@ Kotlin extensions library has no additional updates. # 19.0.5 -- [fixed] Muted logcat logging for [firebase_perfmon] when `firebase_performance_logcat_enabled` is - not set or set to false. ([#403](//github.com/firebase/firebase-android-sdk/issues/403)) +- [fixed] Muted logcat logging for [firebase_perfmon] when + `firebase_performance_logcat_enabled` is not set or set to false. + ([#403](//github.com/firebase/firebase-android-sdk/issues/403)) - [fixed] Skipped automatic performance event creation when `firebase_performance_collection_enabled` is set to false. - [changed] Internal infrastructure improvements. # 19.0.4 -- [changed] Improved internal infrastructure to work better with [firebase_remote_config]. +- [changed] Improved internal infrastructure to work better with + [firebase_remote_config]. # 19.0.3 @@ -419,18 +452,20 @@ Kotlin extensions library has no additional updates. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.0.1 -- [fixed] Fixed an `IllegalStateException` that was thrown when an activity with hardware - acceleration disabled was stopped. +- [fixed] Fixed an `IllegalStateException` that was thrown when an activity + with hardware acceleration disabled was stopped. # 17.0.2 -- [fixed] Fixed a `Null Pointer Exception` that was being observed on certain Android 7.0 devices. -- [fixed] Updates to make [perfmon] work better with the latest version of [firebase_remote_config]. +- [fixed] Fixed a `Null Pointer Exception` that was being observed on certain + Android 7.0 devices. +- [fixed] Updates to make [perfmon] work better with the latest version of + [firebase_remote_config]. # 17.0.0 @@ -438,14 +473,15 @@ Kotlin extensions library has no additional updates. # 16.2.5 -- [fixed] Fixed a bug that was causing apps using multiple processses to throw an - `IllegalStateException` in the non-main processes. +- [fixed] Fixed a bug that was causing apps using multiple processses to throw + an `IllegalStateException` in the non-main processes. # 16.2.4 -- [fixed] Fixed a bug that was causing a `NoClassDefFoundError` to be thrown which resulted in - intermittent app crashes. -- [fixed] Updates to make [perfmon] work better with the latest version of [firebase_remote_config]. +- [fixed] Fixed a bug that was causing a `NoClassDefFoundError` to be thrown + which resulted in intermittent app crashes. +- [fixed] Updates to make [perfmon] work better with the latest version of + [firebase_remote_config]. - [changed] [firebase_perfmon] no longer depends on [firebase_analytics]. # 16.2.3 @@ -458,12 +494,11 @@ Kotlin extensions library has no additional updates. # 16.2.0 -- [feature] Introduces the Sessions feature, which gives developers access to actionable insights - about data captured using [perfmon]. +- [feature] Introduces the Sessions feature, which gives developers access to + actionable insights about data captured using [perfmon]. - [fixed] Minor bug fixes and improvements. # 16.1.0 -- [fixed] Fixed a `SecurityException` crash on certain devices that do not have Google Play Services - on them. - +- [fixed] Fixed a `SecurityException` crash on certain devices that do not have + Google Play Services on them. diff --git a/firebase-sessions/CHANGELOG.md b/firebase-sessions/CHANGELOG.md index 93de200b360..d4be1f423f3 100644 --- a/firebase-sessions/CHANGELOG.md +++ b/firebase-sessions/CHANGELOG.md @@ -6,7 +6,8 @@ # 3.0.6 -- [fixed] Lazy loading kotlinx.coroutines in FirebaseSessionsDependencies.kt to fix (#7882) +- [fixed] Lazy loading kotlinx.coroutines in FirebaseSessionsDependencies.kt to + fix (#7882) # 3.0.5 @@ -14,7 +15,8 @@ # 3.0.4 -- [fixed] Fixed a bug when the app foregrounds before Sessions has initialized (#7519) +- [fixed] Fixed a bug when the app foregrounds before Sessions has initialized + (#7519) - [changed] Restore SessionLifecycleService as no-op # 3.0.3 @@ -27,16 +29,19 @@ # 3.0.1 -- [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). +- [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] 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] **Breaking Change**: Updated minSdkVersion to API level 23 or +higher. # 2.1.1 @@ -68,10 +73,12 @@ # 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. - (GitHub [#5869](https://github.com/firebase/firebase-android-sdk/issues/5869)) +- [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 @@ -88,7 +95,8 @@ # 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 @@ -99,4 +107,3 @@ # 1.0.0 - [feature] Initial Firebase sessions library. - diff --git a/firebase-storage/CHANGELOG.md b/firebase-storage/CHANGELOG.md index c1bc899bae8..5fe8d9c8844 100644 --- a/firebase-storage/CHANGELOG.md +++ b/firebase-storage/CHANGELOG.md @@ -6,16 +6,17 @@ # 22.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 - 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). +- [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). # 21.0.2 -- [fixed] Fixed an issue where tests were depending on a deprecated feature of the test framework. - (#6927) +- [fixed] Fixed an issue where tests were depending on a deprecated feature of + the test framework. (#6927) ## Kotlin @@ -24,8 +25,8 @@ Kotlin extensions library has no additional updates. # 21.0.1 -- [fixed] Fixed an issue where `maxUploadRetryTimeMillis` parameter is ignored when uploading using - `putBytes()` +- [fixed] Fixed an issue where `maxUploadRetryTimeMillis` parameter is ignored + when uploading using `putBytes()` # 21.0.0 @@ -38,15 +39,20 @@ Kotlin extensions library has no additional updates. # 20.3.0 -- [fixed] Fixed an issue where the wrong SDK version was being reported to the backend. -- [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-perf-ktx` to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` 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-perf-ktx` have been added to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package, and all the - Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-perf-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) +- [fixed] Fixed an issue where the wrong SDK version was being reported to the + backend. +- [changed] Added Kotlin extensions (KTX) APIs from + `com.google.firebase:firebase-perf-ktx` to + `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` + 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-perf-ktx` have + been added to `com.google.firebase:firebase-perf` under the + `com.google.firebase.perf` package, and all the Kotlin extensions (KTX) APIs + in `com.google.firebase:firebase-perf-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 @@ -55,8 +61,9 @@ Kotlin extensions library has no additional updates. # 20.2.1 -- [changed] Migrated `firebase-storage` SDK to use standard Firebase executors. (GitHub - [#4830](//github.com/firebase/firebase-android-sdk/pull/4830){: .external}) +- [changed] Migrated `firebase-storage` SDK to use standard Firebase executors. + (GitHub [#4830](//github.com/firebase/firebase-android-sdk/pull/4830){: + .external}) ## Kotlin @@ -74,26 +81,29 @@ Kotlin extensions library has no additional updates. # 20.1.0 -- [fixed] Fixed an issue that caused an infinite number of retries with no exponential backoff for - `uploadChunk()`. +- [fixed] Fixed an issue that caused an infinite number of retries with no + exponential backoff for `uploadChunk()`. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-storage` 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-storage-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. + .external} to `firebase-storage-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. - [feature] Added [`StorageTask.taskState`](/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary#taskState) Kotlin Flows to monitor the progress of an upload or download `Task`. # 20.0.2 -- [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 @@ -102,10 +112,11 @@ Kotlin extensions library has no additional updates. # 20.0.1 -- [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. +- [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 @@ -137,8 +148,8 @@ Kotlin extensions library has no additional updates. # 19.2.1 -- [fixed] Fixed an issue that caused the SDK to crash if the download location was deleted before - the download completed. Instead, the download now fails. +- [fixed] Fixed an issue that caused the SDK to crash if the download location + was deleted before the download completed. Instead, the download now fails. ## Kotlin @@ -156,11 +167,13 @@ the following additional updates: - [feature] Added API support for destructuring of [`TaskSnapshot`](/docs/reference/kotlin/com/google/firebase/storage/StreamDownloadTask.TaskSnapshot) - and [`ListResult`](/docs/reference/kotlin/com/google/firebase/storage/ListResult). + and + [`ListResult`](/docs/reference/kotlin/com/google/firebase/storage/ListResult). # 19.1.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. ## Kotlin @@ -169,35 +182,39 @@ Kotlin extensions library has no additional updates. # 19.1.0 -- [feature] Added `getCacheControl()`, `getContentDisposition()`, `getContentEncoding()`, - `getContentLanguage()`, and `getContentType()` to +- [feature] Added `getCacheControl()`, `getContentDisposition()`, + `getContentEncoding()`, `getContentLanguage()`, and `getContentType()` to [`StorageMetadata.Builder`](/docs/reference/android/com/google/firebase/storage/StorageMetadata.Builder) to provide access to the current state of the metadata. - [fixed] Fixed an encoding issue in [`StorageReference.list()`]() - that caused the API to miss entries for prefixes that contained special characters. + that caused the API to miss entries for prefixes that contained special + characters. ## Kotlin -- [feature] The beta release of a [firebase_storage_full] Android library with Kotlin extensions is - now available. The Kotlin extensions library transitively includes the base `firebase-storage` - library. To learn more, visit the - [[firebase_storage_full] KTX documentation](/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary). +- [feature] The beta release of a [firebase_storage_full] Android library with + Kotlin extensions is now available. The Kotlin extensions library + transitively includes the base `firebase-storage` library. To learn more, + visit the [[firebase_storage_full] KTX + documentation](/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary). # 19.0.1 - [fixed] [`StorageReference.listAll()`]() - now propagates the error messages if the List operation was denied by a Security Rule. + now propagates the error messages if the List operation was denied by a + Security Rule. # 19.0.0 -- [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No - other changes. +- [changed] Versioned to add nullability annotations to improve the Kotlin + developer experience. No other changes. # 18.1.1 -- [changed] Internal changes to ensure functionality alignment with other SDK releases. +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. # 18.1.0 @@ -205,7 +222,8 @@ Kotlin extensions library has no additional updates. [`StorageReference.list()`]() and [`StorageReference.listAll()`](), - which allows developers to list the files and folders under the given StorageReference. + which allows developers to list the files and folders under the given + StorageReference. - [changed] Added validation to [`StorageReference.getDownloadUrl()`]() and @@ -214,9 +232,9 @@ Kotlin extensions library has no additional updates. # 17.0.0 -- [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. +- [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. # 16.0.2 @@ -224,12 +242,14 @@ Kotlin extensions library has no additional updates. # 16.0.1 -- [feature] Added support for `onSuccessTask()` and `addOnCanceledListener()` to +- [feature] Added support for `onSuccessTask()` and `addOnCanceledListener()` + to [`StorageTask`](/docs/reference/android/com/google/firebase/storage/StorageTask), [`UploadTask`](/docs/reference/android/com/google/firebase/storage/UploadTask), [`StreamDownloadTask`](/docs/reference/android/com/google/firebase/storage/StreamDownloadTask), - and [`FileDownloadTask`](/docs/reference/android/com/google/firebase/storage/FileDownloadTask). + and + [`FileDownloadTask`](/docs/reference/android/com/google/firebase/storage/FileDownloadTask). - [changed] Removed the deprecated `StorageMetadata.getDownloadUrl()` and - `UploadTask.TaskSnapshot.getDownloadUrl()` methods. To get a current download URL, use + `UploadTask.TaskSnapshot.getDownloadUrl()` methods. To get a current download + URL, use [`StorageReference.getDownloadUr()`](). - diff --git a/firebase-vertexai/CHANGELOG.md b/firebase-vertexai/CHANGELOG.md index 808220b4e0f..13e68e7fc80 100644 --- a/firebase-vertexai/CHANGELOG.md +++ b/firebase-vertexai/CHANGELOG.md @@ -1,72 +1,81 @@ # 16.5.0 -- [changed] **Renamed / Replaced:** Vertex AI in Firebase (`firebase-vertexai`) has been renamed and - replaced by the new Firebase AI SDK: `firebase-ai`. This is to accommodate the evolving set of - supported features and services. Please - [**migrate to the new `firebase-ai` package**](/docs/vertex-ai/migrate-to-latest-sdk). - -Note: Existing users of the Vertex AI in Firebase SDK (`firebase-vertexai`) may continue to use the -SDK and receive bug fixes but, going forward, new features will only be added into the new Firebase -AI SDK. - -The following changes and features are in the Vertex AI in Firebase SDK (`firebase-vertexai`), but -we recommend that you accommodate them (as applicable) as part of migrating to the `firebase-ai` -SDK. - -- [changed] **Breaking Change**: Removed the `LiveContentResponse.Status` class, and instead have - nested the status fields as properties of `LiveContentResponse`. (#6941) -- [changed] **Breaking Change**: Removed the `LiveContentResponse` class, and instead have provided - subclasses of `LiveServerMessage` that match the responses from the model. (#6941) -- [feature] Added support for the `id` field on `FunctionResponsePart` and `FunctionCallPart`. - (#6941) +- [changed] **Renamed / Replaced:** Vertex AI in Firebase (`firebase-vertexai`) +has been renamed and replaced by the new Firebase AI SDK: `firebase-ai`. This +is to accommodate the evolving set of supported features and services. Please +[**migrate to the new `firebase-ai` +package**](/docs/vertex-ai/migrate-to-latest-sdk). + +Note: Existing users of the Vertex AI in Firebase SDK (`firebase-vertexai`) may +continue to use the SDK and receive bug fixes but, going forward, new features +will only be added into the new Firebase AI SDK. + +The following changes and features are in the Vertex AI in Firebase SDK +(`firebase-vertexai`), but we recommend that you accommodate them (as +applicable) as part of migrating to the `firebase-ai` SDK. +- [changed] **Breaking Change**: Removed the `LiveContentResponse.Status` +class, and instead have nested the status fields as properties of +`LiveContentResponse`. (#6941) +- [changed] **Breaking Change**: Removed the `LiveContentResponse` class, and +instead have provided subclasses of `LiveServerMessage` that match the +responses from the model. (#6941) +- [feature] Added support for the `id` field on `FunctionResponsePart` and + `FunctionCallPart`. (#6941) - [feature] Added a helper field for getting all the `InlineDataPart` from a `GenerateContentResponse`. (#6941) # 16.4.0 - [changed] **Breaking Change**: `LiveModelFutures.connect` now returns - `ListenableFuture` instead of `ListenableFuture`. - - **Action Required:** Remove any transformations from LiveSession object to LiveSessionFutures - object. - - **Action Required:** Change type of variable handling `LiveModelFutures.connect` to - `ListenableFuture` -- [changed] **Breaking Change**: Removed `UNSPECIFIED` value for enum class `ResponseModality` +`ListenableFuture` instead of +`ListenableFuture`. + - **Action Required:** Remove any transformations from LiveSession object to +LiveSessionFutures object. + - **Action Required:** Change type of variable handling +`LiveModelFutures.connect` to `ListenableFuture` +- [changed] **Breaking Change**: Removed `UNSPECIFIED` value for enum class +`ResponseModality` - **Action Required:** Remove all references to `ResponseModality.UNSPECIFIED` -- [changed] **Breaking Change**: Renamed `LiveGenerationConfig.setResponseModalities` to - `LiveGenerationConfig.setResponseModality` - - **Action Required:** Replace all references of `LiveGenerationConfig.setResponseModalities` with - `LiveGenerationConfig.setResponseModality` -- [feature] Added support for `HarmBlockThreshold.OFF`. See the - [model documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#how_to_configure_content_filters){: +- [changed] **Breaking Change**: Renamed +`LiveGenerationConfig.setResponseModalities` to +`LiveGenerationConfig.setResponseModality` + - **Action Required:** Replace all references of +`LiveGenerationConfig.setResponseModalities` with +`LiveGenerationConfig.setResponseModality` +- [feature] Added support for `HarmBlockThreshold.OFF`. See the [model + documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#how_to_configure_content_filters){: .external} for more information. - [fixed] Improved thread usage when using a `LiveGenerativeModel`. (#6870) -- [fixed] Fixed an issue with `LiveContentResponse` audio data not being present when the model was - interrupted or the turn completed. (#6870) +- [fixed] Fixed an issue with `LiveContentResponse` audio data not being + present when the model was interrupted or the turn completed. (#6870) - [fixed] Fixed an issue with `LiveSession` not converting exceptions to `FirebaseVertexAIException`. (#6870) - [feature] Enable response generation in multiple modalities. (#6901) -- [changed] Removed the `LiveContentResponse.Status` class, and instead have nested the status - fields as properties of `LiveContentResponse`. (#6906) +- [changed] Removed the `LiveContentResponse.Status` class, and instead have + nested the status fields as properties of `LiveContentResponse`. (#6906) # 16.3.0 -- [feature] Emits a warning when attempting to use an incompatible model with `GenerativeModel` or - `ImagenModel`. +- [feature] Emits a warning when attempting to use an incompatible model with + `GenerativeModel` or `ImagenModel`. - [changed] Added new exception type for quota exceeded scenarios. - [feature] `CountTokenRequest` now includes `GenerationConfig` from the model. -- [feature] **Public Preview:** Added support for streaming input and output (including audio) using - the [Gemini Live API](/docs/vertex-ai/live-api?platform=android) **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. -- [changed] **Breaking Change**: `ImagenInlineImage.data` now returns the raw image bytes (in JPEG - or PNG format, as specified in `ImagenInlineImage.mimeType`) instead of Base64-encoded data. - (#6800) - - **Action Required:** Remove any Base64 decoding from your `ImagenInlineImage.data` usage. +- [feature] **Public Preview:** Added support for streaming input and output +(including audio) using the [Gemini Live +API](/docs/vertex-ai/live-api?platform=android) **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. +- [changed] **Breaking Change**: `ImagenInlineImage.data` now returns the raw +image bytes (in JPEG or PNG format, as specified in +`ImagenInlineImage.mimeType`) instead of Base64-encoded data. (#6800) + - **Action Required:** Remove any Base64 decoding from your +`ImagenInlineImage.data` usage. - The `asBitmap()` helper method is unaffected and requires no code changes. # 16.2.0 -- [fixed] Added support for new values sent by the server for `FinishReason` and `BlockReason`. +- [fixed] Added support for new values sent by the server for `FinishReason` + and `BlockReason`. - [changed] Added support for modality-based token count. (#6658) - [feature] Added support for generating images with Imagen models. @@ -77,67 +86,76 @@ SDK. # 16.0.2 - [fixed] Improved error message when using an invalid location. (#6428) -- [fixed] Fixed issue where Firebase App Check error tokens were unintentionally missing from the - requests. (#6409) -- [fixed] Clarified in the documentation that `Schema.integer` and `Schema.float` only provide hints - to the model. (#6420) -- [fixed] Fixed issue were `Schema.double` set the format parameter in `Schema`. (#6432) +- [fixed] Fixed issue where Firebase App Check error tokens were + unintentionally missing from the requests. (#6409) +- [fixed] Clarified in the documentation that `Schema.integer` and + `Schema.float` only provide hints to the model. (#6420) +- [fixed] Fixed issue were `Schema.double` set the format parameter in + `Schema`. (#6432) # 16.0.1 -- [fixed] Fixed issue where authorization headers weren't correctly formatted and were ignored by - the backend. (#6400) +- [fixed] Fixed issue where authorization headers weren't correctly formatted + and were ignored by the backend. (#6400) # 16.0.0 -- [feature] {{firebase_vertexai}} is now Generally Available (GA) and can be used in production - apps. +- [feature] {{firebase_vertexai}} is now Generally Available (GA) and can be + used in production apps. - Use the {{firebase_vertexai_sdk}} to call the {{gemini_api_vertexai_long}} directly from your app. - This client SDK is built specifically for use with Android apps, offering security options against - unauthorized clients as well as integrations with other Firebase services. +Use the {{firebase_vertexai_sdk}} to call the {{gemini_api_vertexai_long}} +directly from your app. This client SDK is built specifically for use with +Android apps, offering security options against unauthorized clients as well as +integrations with other Firebase services. - If you're new to this library, visit the - [getting started guide](/docs/vertex-ai/get-started?platform=android). +[getting started guide](/docs/vertex-ai/get-started?platform=android). - If you were using the preview version of the library, visit the - [migration guide](/docs/vertex-ai/migrate-to-ga?platform=android) to learn about some important - updates. - -- [changed] **Breaking Change**: Changed `functionCallingConfig` parameter type to be nullable in - `ToolConfig`. (#6373) +[migration guide](/docs/vertex-ai/migrate-to-ga?platform=android) to learn +about some important updates. +- [changed] **Breaking Change**: Changed `functionCallingConfig` parameter type +to be nullable in `ToolConfig`. (#6373) - [changed] **Breaking Change**: Removed `functionResponse` accessor method from - `GenerateContentResponse`. (#6373) -- [changed] **Breaking Change**: Migrated `FirebaseVertexAIException` from a sealed class to an - abstract class, and marked constructors as internal. (#6368) -- [feature] Added support for `title` and `publicationDate` in citations. (#6309) -- [feature] Added support for `frequencyPenalty`, `presencePenalty`, and `HarmBlockMethod`. (#6309) -- [changed] **Breaking Change**: Introduced `Citations` class. Now `CitationMetadata` wraps that - type. (#6276) -- [changed] **Breaking Change**: Reworked `Schema` declaration mechanism. (#6258) -- [changed] **Breaking Change**: Reworked function calling mechanism to use the new `Schema` format. - Function calls no longer use native types, nor include references to the actual executable code. - (#6258) -- [changed] **Breaking Change**: Made `totalBillableCharacters` field in `CountTokens` nullable and - optional. (#6294) -- [changed] **Breaking Change**: Removed `UNKNOWN` option for the `HarmBlockThreshold` enum. (#6294) -- [changed] **Breaking Change**: Removed `UNSPECIFIED` option for the `HarmBlockThreshold`, - `HarmProbability`, `HarmSeverity`, and `BlockReason` enums. (#6294) -- [changed] **Breaking Change**: Renamed `BlockThreshold` as `HarmBlockThreshold`. (#6262) -- [changed] **Breaking Change**: Renamed all types and methods starting with `blob` to start with - `inlineData`. (#6309) -- [changed] **Breaking Change**: Changed the order of arguments in `InlineDataPart` to match - `ImagePart`. (#6340) -- [changed] **Breaking Change**: Changed `RequestOption` to accept only `long` timeout values. - (#6289) -- [changed] **Breaking Change**: Moved `requestOptions` to the last positional argument in the - `generativeModel` argument list. (#6292) -- [changed] **Breaking Change**: Replaced sealed classes with abstract classes for `StringFormat`. - (#6334) -- [changed] **Breaking Change**: Refactored enum classes to be normal classes. (#6340) -- [changed] **Breaking Change**: Marked `GenerativeModel` properties as private. (#6309) -- [changed] **Breaking Change**: Changed `method` parameter type to be nullable in `SafetySettings`. - (#6379) +`GenerateContentResponse`. (#6373) +- [changed] **Breaking Change**: Migrated `FirebaseVertexAIException` from a +sealed class to an abstract class, and marked constructors as internal. (#6368) +- [feature] Added support for `title` and `publicationDate` in citations. + (#6309) +- [feature] Added support for `frequencyPenalty`, `presencePenalty`, and + `HarmBlockMethod`. (#6309) +- [changed] **Breaking Change**: Introduced `Citations` class. Now +`CitationMetadata` wraps that type. (#6276) +- [changed] **Breaking Change**: Reworked `Schema` declaration mechanism. +(#6258) +- [changed] **Breaking Change**: Reworked function calling mechanism to use the +new `Schema` format. Function calls no longer use native types, nor include +references to the actual executable code. (#6258) +- [changed] **Breaking Change**: Made `totalBillableCharacters` field in +`CountTokens` nullable and optional. (#6294) +- [changed] **Breaking Change**: Removed `UNKNOWN` option for the +`HarmBlockThreshold` enum. (#6294) +- [changed] **Breaking Change**: Removed `UNSPECIFIED` option for the +`HarmBlockThreshold`, `HarmProbability`, `HarmSeverity`, and `BlockReason` +enums. (#6294) +- [changed] **Breaking Change**: Renamed `BlockThreshold` as +`HarmBlockThreshold`. (#6262) +- [changed] **Breaking Change**: Renamed all types and methods starting with +`blob` to start with `inlineData`. (#6309) +- [changed] **Breaking Change**: Changed the order of arguments in +`InlineDataPart` to match `ImagePart`. (#6340) +- [changed] **Breaking Change**: Changed `RequestOption` to accept only `long` +timeout values. (#6289) +- [changed] **Breaking Change**: Moved `requestOptions` to the last positional +argument in the `generativeModel` argument list. (#6292) +- [changed] **Breaking Change**: Replaced sealed classes with abstract classes +for `StringFormat`. (#6334) +- [changed] **Breaking Change**: Refactored enum classes to be normal classes. +(#6340) +- [changed] **Breaking Change**: Marked `GenerativeModel` properties as +private. (#6309) +- [changed] **Breaking Change**: Changed `method` parameter type to be nullable +in `SafetySettings`. (#6379) # 16.0.0-beta05 @@ -146,8 +164,8 @@ SDK. # 16.0.0-beta03 -- [changed] Breaking Change: changed `Schema.int` to return 32 bit integers instead of 64 bit - (long). +- [changed] Breaking Change: changed `Schema.int` to return 32 bit integers + instead of 64 bit (long). - [changed] Added `Schema.long` to return 64-bit integer numbers. - [changed] Added `Schema.double` to handle floating point numbers. - [changed] Marked `Schema.num` as deprecated, prefer using `Schema.double`. @@ -156,5 +174,6 @@ SDK. # 16.0.0-beta01 - [feature] Added support for `responseMimeType` in `GenerationConfig`. -- [changed] Renamed `GoogleGenerativeAIException` to `FirebaseVertexAIException`. +- [changed] Renamed `GoogleGenerativeAIException` to + `FirebaseVertexAIException`. - [changed] Updated the KDocs for various classes and functions. diff --git a/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt b/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt new file mode 100644 index 00000000000..8a8f5974260 --- /dev/null +++ b/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt @@ -0,0 +1,118 @@ +package com.google.firebase.gradle.plugins + +object ChangelogFormatter { + + private fun wrapText(text: String, maxWidth: Int, indent: String): List { + val words = text.split(Regex("(?<=\\s)")) + val lines = mutableListOf() + var currentLine = StringBuilder() + + for (word in words) { + if (currentLine.length + word.length > maxWidth) { + if (currentLine.isNotEmpty()) { + lines.add(currentLine.toString().trimEnd()) + currentLine = StringBuilder(indent) + } + } + currentLine.append(word) + } + if (currentLine.isNotEmpty()) { + lines.add(currentLine.toString().trimEnd()) + } + return lines + } + + private fun wrapChange(change: Change): String { + val lines = change.message.split("\n") + val unwrapped = mutableListOf() + + for (line in lines) { + val trimmed = line.trim() + if (trimmed.isEmpty()) { + unwrapped.add("") + } else if (trimmed.startsWith("-") || trimmed.startsWith("*") || trimmed.matches(Regex("^\\d+\\..*"))) { + unwrapped.add(line) + } else { + if (unwrapped.isEmpty()) { + unwrapped.add(trimmed) + } else { + val last = unwrapped.removeLast() + if (last.isEmpty() || last.trimStart().startsWith("-") || last.trimStart().startsWith("*") || last.trimStart().matches(Regex("^\\d+\\..*"))) { + unwrapped.add(last) + unwrapped.add(trimmed) + } else { + unwrapped.add("$last $trimmed") + } + } + } + } + + val wrappedLines = mutableListOf() + var firstLine = true + + for (unwrappedLine in unwrapped) { + if (firstLine) { + val prefix = "- [${change.type.toString().lowercase()}] " + val maxWidth = 80 + val wrapped = wrapText("$prefix$unwrappedLine", maxWidth, " ") + wrappedLines.addAll(wrapped) + firstLine = false + } else { + if (unwrappedLine.isEmpty()) { + wrappedLines.add("") + } else { + val indentMatch = Regex("^\\s*").find(unwrappedLine) + val indent = indentMatch?.value ?: "" + + val isListItem = unwrappedLine.trimStart().startsWith("-") || unwrappedLine.trimStart().startsWith("*") || unwrappedLine.trimStart().matches(Regex("^\\d+\\..*")) + val baseIndent = if (isListItem) indent + " " else indent + + val wrapped = wrapText(unwrappedLine, 80, baseIndent) + wrappedLines.addAll(wrapped) + } + } + } + return wrappedLines.joinToString("\n") + } + + private fun formatContent(content: ReleaseContent): String { + val changesStr = content.changes.joinToString("\n") { wrapChange(it) } + return when { + content.subtext.isNotBlank() && changesStr.isNotBlank() -> "${content.subtext}\n\n$changesStr" + content.subtext.isNotBlank() -> content.subtext + changesStr.isNotBlank() -> changesStr + else -> "" + } + } + + fun format(content: String): String { + val header = content.split(Regex("^#\\s", RegexOption.MULTILINE)).first() + val changelog = Changelog.fromString(content) + + val sb = StringBuilder() + sb.append(header) + if (!header.endsWith("\n") && header.isNotEmpty()) { + sb.append("\n") + } + // Ensure header is followed by a blank line if it's not empty + if (!sb.endsWith("\n\n") && sb.isNotEmpty()) { + sb.append("\n") + } + + val releasesStr = changelog.releases.joinToString("\n\n") { release -> + val releaseContentStr = formatContent(release.content) + val ktxStr = release.ktx?.let { "\n\n## Kotlin\n\n${formatContent(it)}" } ?: "" + + if (releaseContentStr.isEmpty() && ktxStr.isEmpty()) { + "# ${release.version?.toString() ?: "Unreleased"}" + } else { + """|# ${release.version?.toString() ?: "Unreleased"} + | + |$releaseContentStr$ktxStr""".trimMargin() + } + } + + sb.append(releasesStr).append("\n") + return sb.toString() + } +} diff --git a/transport/transport-api/CHANGELOG.md b/transport/transport-api/CHANGELOG.md index 21d3b199c8b..cb3ac1566e7 100644 --- a/transport/transport-api/CHANGELOG.md +++ b/transport/transport-api/CHANGELOG.md @@ -20,9 +20,10 @@ extensions library has no additional updates. # 3.2.0 -- [feature] Added new APIs to support passing extra context when logging an event. +- [feature] Added new APIs to support passing extra context when logging an + event. # 3.1.0 -- [feature] Added new APIs to support passing a product id when logging an event. - +- [feature] Added new APIs to support passing a product id when logging an + event. diff --git a/transport/transport-backend-cct/CHANGELOG.md b/transport/transport-backend-cct/CHANGELOG.md index 8bbb68dcba6..7a768dc3a17 100644 --- a/transport/transport-backend-cct/CHANGELOG.md +++ b/transport/transport-backend-cct/CHANGELOG.md @@ -25,4 +25,3 @@ Kotlin extensions library has no additional updates. # 3.2.0 - [feature] Added support for product id. - diff --git a/transport/transport-runtime-testing/CHANGELOG.md b/transport/transport-runtime-testing/CHANGELOG.md index a1ecf841edb..79e701b844d 100644 --- a/transport/transport-runtime-testing/CHANGELOG.md +++ b/transport/transport-runtime-testing/CHANGELOG.md @@ -1,2 +1 @@ # Unreleased - diff --git a/transport/transport-runtime/CHANGELOG.md b/transport/transport-runtime/CHANGELOG.md index 0d4fdb3e740..38300817cba 100644 --- a/transport/transport-runtime/CHANGELOG.md +++ b/transport/transport-runtime/CHANGELOG.md @@ -27,4 +27,3 @@ Kotlin extensions library has no additional updates. - [unchanged] Updated internal Dagger dependency. - [feature] Added support for product id. - From a3a02d0573287bb01fe560369ef4c9ddf06ece7f Mon Sep 17 00:00:00 2001 From: Mila <107142260+milaGGL@users.noreply.github.com> Date: Tue, 18 Aug 2026 10:20:04 -0400 Subject: [PATCH 2/2] make links, code blocks stay in one line despite line length --- ai-logic/firebase-ai/CHANGELOG.md | 117 ++++----- .../CHANGELOG.md | 12 +- appcheck/firebase-appcheck-debug/CHANGELOG.md | 16 +- .../CHANGELOG.md | 23 +- appcheck/firebase-appcheck/CHANGELOG.md | 54 ++-- firebase-abt/CHANGELOG.md | 12 +- firebase-appdistribution-api/CHANGELOG.md | 55 ++-- firebase-appdistribution/CHANGELOG.md | 35 ++- firebase-common/CHANGELOG.md | 22 +- firebase-components/CHANGELOG.md | 2 +- .../CHANGELOG.md | 2 +- firebase-config/CHANGELOG.md | 79 +++--- firebase-crashlytics-ndk/CHANGELOG.md | 29 +-- firebase-crashlytics/CHANGELOG.md | 172 ++++++------- firebase-database/CHANGELOG.md | 38 ++- firebase-dataconnect/CHANGELOG.md | 59 +++-- firebase-datatransport/CHANGELOG.md | 2 +- firebase-dynamic-links/CHANGELOG.md | 46 ++-- firebase-firestore/CHANGELOG.md | 239 +++++++++--------- firebase-functions/CHANGELOG.md | 46 ++-- firebase-inappmessaging-display/CHANGELOG.md | 92 ++++--- firebase-inappmessaging/CHANGELOG.md | 89 ++++--- firebase-installations/CHANGELOG.md | 20 +- firebase-messaging-directboot/CHANGELOG.md | 23 +- firebase-messaging/CHANGELOG.md | 141 +++++------ firebase-ml-modeldownloader/CHANGELOG.md | 48 ++-- firebase-perf/CHANGELOG.md | 111 ++++---- firebase-sessions/CHANGELOG.md | 13 +- firebase-storage/CHANGELOG.md | 45 ++-- firebase-vertexai/CHANGELOG.md | 142 +++++------ .../gradle/plugins/ChangelogFormatter.kt | 172 +++++++++++-- 31 files changed, 999 insertions(+), 957 deletions(-) diff --git a/ai-logic/firebase-ai/CHANGELOG.md b/ai-logic/firebase-ai/CHANGELOG.md index a867b3f73cc..a5d6e6c9d67 100644 --- a/ai-logic/firebase-ai/CHANGELOG.md +++ b/ai-logic/firebase-ai/CHANGELOG.md @@ -3,9 +3,8 @@ - [feature] Added support for on-device structured output generation using `generateObject` (#8395) - [changed] **Breaking Change**: Removed deprecated Imagen methods and types -due to Imagen models being shut down in August 2026. As a replacement, you can -[migrate your apps to use Gemini Image models (the "Nano Banana" -models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). + due to Imagen models being shut down in August 2026. As a replacement, you can + [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). - [changed] Adjusts `LiveSession.isClosed` to better reflect underlying connection closure state and not consume frames (#8511) - [changed] Replaced the `"function"` conversational role with `"user"` for @@ -20,16 +19,15 @@ models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). - [feature] Added `getOnDeviceModelName` to `GenerativeModel` (#8247) - [changed] Deprecated `GenerativeBackend.vertexAI` in favor of `GenerativeBackend.agentPlatform` to reflect the renaming of Vertex AI to - Gemini Enterprise Agent Platform. (#8437) - -Note: The only difference for `GenerativeBackend.agentPlatform` is the default -[location for accessing the -model](https://firebase.google.com/docs/ai-logic/locations?api=vertex). The -default location for `GenerativeBackend.agentPlatform` is `global`, whereas the -default location for `GenerativeBackend.vertexAI` is `us-central1`. To use -`us-central1` with `GenerativeBackend.agentPlatform`, specify -`GenerativeBackend.agentPlatform(location = "us-central1")` when initializing -the SDK. However, note that most new Gemini models do not support `us-central1`. + Gemini Enterprise Agent Platform. (#8437) Note: The only difference for + `GenerativeBackend.agentPlatform` is the default + [location for accessing the model](https://firebase.google.com/docs/ai-logic/locations?api=vertex). + The default location for `GenerativeBackend.agentPlatform` is `global`, + whereas the default location for `GenerativeBackend.vertexAI` is + `us-central1`. To use `us-central1` with `GenerativeBackend.agentPlatform`, + specify `GenerativeBackend.agentPlatform(location = "us-central1")` when + initializing the SDK. However, note that most new Gemini models do not support + `us-central1`. # 17.14.0 @@ -57,8 +55,8 @@ the SDK. However, note that most new Gemini models do not support `us-central1`. - [feature] Added support for `ImageConfig` and `finishMessage`. (#8020) - [feature] Added a Java-friendly wrapper for TemplateChat interactions (`TemplateChatFutures`). -- [feature] Added support for [Maps - Grounding](https://ai.google.dev/gemini-api/docs/maps-grounding) (#7950) +- [feature] Added support for + [Maps Grounding](https://ai.google.dev/gemini-api/docs/maps-grounding) (#7950) - [feature] Added the `turnComplete` argument to multiple `LiveSession.send()` methods. (#8014) - [fixed] Fixed `LiveGenerativeModel.connect()` not attaching the @@ -70,13 +68,12 @@ the SDK. However, note that most new Gemini models do not support `us-central1`. # 17.11.0 - [deprecated] All Imagen models are deprecated and will shut down as early as - June 2026. As a replacement, you can [migrate your apps to use Gemini Image - models (the "Nano Banana" - models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). + June 2026. As a replacement, you can + [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). - [feature] Added support for Chat interactions using server prompt templates (#7986) -- [feature] Added support for function calling in Chat interactions using - server prompt templates (#8004) +- [feature] Added support for function calling in Chat interactions using server + prompt templates (#8004) - [fixed] Fixed an issue causing network timeouts to throw the incorrect exception type, instead of `RequestTimeoutException` (#7966) - [fixed] Fixed missing `toString()` implementation for `InferenceSource` @@ -104,18 +101,17 @@ the SDK. However, note that most new Gemini models do not support `us-central1`. - [feature] Added `JsonSchema`, `GenerativeModel#generateObject` and the firebase-ai-ksp processor's annotation (`Generable`, and `Guide`). To learn - more about how to use them, and the ksp processor see the [Firebase KSP - Processor - Readme](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-ai-ksp-processor/README.md) -- [feature] Added support for [API Key - restrictions](https://docs.cloud.google.com/docs/authentication/api-keys#adding-application-restrictions) + more about how to use them, and the ksp processor see the + [Firebase KSP Processor Readme](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-ai-ksp-processor/README.md) +- [feature] Added support for + [API Key restrictions](https://docs.cloud.google.com/docs/authentication/api-keys#adding-application-restrictions) (#7679) - [changed] The URL context tool APIs are now GA. (#7686) - [feature] Added support for implicit caching (context caching) metadata in GenerateContentResponse. You can now access cachedContentTokenCount and cacheTokensDetails in UsageMetadata to see savings from cached content. See - the [caching documentation](https://ai.google.dev/gemini-api/docs/caching) - for more details. (#7647) + the [caching documentation](https://ai.google.dev/gemini-api/docs/caching) for + more details. (#7647) # 17.8.0 @@ -132,8 +128,8 @@ the SDK. However, note that most new Gemini models do not support `us-central1`. # 17.6.0 -- [feature] Added support for server templates via `TemplateGenerativeModel` - and `TemplateImagenModel`. (#7503) +- [feature] Added support for server templates via `TemplateGenerativeModel` and + `TemplateImagenModel`. (#7503) # 17.5.0 @@ -146,7 +142,7 @@ the SDK. However, note that most new Gemini models do not support `us-central1`. # 17.4.0 - [changed] **Breaking Change**: Removed the `candidateCount` option from -`LiveGenerationConfig` + `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 @@ -169,56 +165,56 @@ the SDK. However, note that most new Gemini models do not support `us-central1`. `CodeExecutionResultPart` as deprecated. - [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 audio session and the underlying websocket connection. +- [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 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 model's internal reasoning process. +- [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 exception when the response contained - no candidates. + `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 configured. - [changed] Added a `dilation` parameter to `ImagenMaskReference.generateMaskAndPadForOutpainting` (#7260) - [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) + _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 transfer, and subject references (#7075) +- [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 + Developer Api # 17.0.0 - [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). + (#7042). - **Action Required:** Update all references of `groundingAttributions`, -`webSearchQueries`, `retrievalQueries` in `GroundingMetadata` to be -non-optional. + `webSearchQueries`, `retrievalQueries` in `GroundingMetadata` to be + non-optional. - [changed] require at least one argument for `generateContent()`, `generateContentStream()` and `countTokens()`. - [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. + higher. # 16.2.0 @@ -236,9 +232,9 @@ higher. - [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` class. + class instead of `Voices` class. - **Action Required:** Update all references of `SpeechConfig` initialization -to use `Voice` class. + to use `Voice` class. - [fixed] Fix incorrect model name in count token requests to the developer API backend @@ -248,17 +244,14 @@ to use `Voice` class. _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 free tier offering. + Developer API, including its free tier offering. - Using the Firebase AI SDK with the Vertex AI Gemini API is still generally -available (GA). - -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. + available (GA). 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` (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. + `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/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md index 7d1eb5548dd..bed4159ee0b 100644 --- a/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md +++ b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md @@ -55,8 +55,8 @@ # 16.1.1 - [changed] Integrated the [app_check] Debug Testing SDK with Firebase - components. (GitHub - [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) + components. + (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) # 16.1.0 @@ -65,8 +65,8 @@ # 16.0.1 -- [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). # 16.0.0 @@ -102,5 +102,5 @@ # 16.0.0-beta01 -- [feature] Initial beta release of the [app_check] Debug Testing SDK with - abuse reduction features. +- [feature] Initial beta release of the [app_check] Debug Testing SDK with abuse + reduction features. diff --git a/appcheck/firebase-appcheck-debug/CHANGELOG.md b/appcheck/firebase-appcheck-debug/CHANGELOG.md index 468316adf56..4ca5e6dd29f 100644 --- a/appcheck/firebase-appcheck-debug/CHANGELOG.md +++ b/appcheck/firebase-appcheck-debug/CHANGELOG.md @@ -60,14 +60,14 @@ # 16.1.1 - [changed] Migrated [app_check] SDKs to use standard Firebase executors. - (GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: - .external} and + (GitHub + [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} + and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) - [changed] Integrated the [app_check] Debug SDK with Firebase components. - (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: - .external}) -- [changed] Moved Task continuations off the main thread. (GitHub - [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) + (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) +- [changed] Moved Task continuations off the main thread. + (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) # 16.1.0 @@ -76,8 +76,8 @@ # 16.0.1 -- [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). # 16.0.0 diff --git a/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md index 9ca194cda31..408eb8740f1 100644 --- a/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md +++ b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md @@ -28,7 +28,7 @@ # 19.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. # 18.0.0 @@ -58,14 +58,15 @@ higher. # 16.1.1 - [changed] Migrated [app_check] SDKs to use standard Firebase executors. - (GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: - .external} and + (GitHub + [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} + and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) - [changed] Integrated the [app_check] Play integrity SDK with Firebase - components. (GitHub - [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) -- [changed] Moved Task continuations off the main thread. (GitHub - [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) + components. + (GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external}) +- [changed] Moved Task continuations off the main thread. + (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) # 16.1.0 @@ -74,11 +75,11 @@ higher. # 16.0.1 -- [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). # 16.0.0 -- [feature] Added support for [Play - Integrity](https://developer.android.com/google/play/integrity) as an +- [feature] Added support for + [Play Integrity](https://developer.android.com/google/play/integrity) as an attestation provider. diff --git a/appcheck/firebase-appcheck/CHANGELOG.md b/appcheck/firebase-appcheck/CHANGELOG.md index a97b2cc47fe..e7ccd04ee13 100644 --- a/appcheck/firebase-appcheck/CHANGELOG.md +++ b/appcheck/firebase-appcheck/CHANGELOG.md @@ -16,13 +16,13 @@ - [fixed] Fixed issue preventing limited use tokens from being correctly generated. (#8204) -- [changed] Added new `getLimitedUseToken` to `AppCheckProvider` interface, - that default to calling `getToken`. (#8204) +- [changed] Added new `getLimitedUseToken` to `AppCheckProvider` interface, that + default to calling `getToken`. (#8204) # 19.0.2 -- [fixed] Fixed a bug causing custom `AppCheckProvider` returning errors - without a message to throw an exception. +- [fixed] Fixed a bug causing custom `AppCheckProvider` returning errors without + a message to throw an exception. [#7624](//github.com/firebase/firebase-android-sdk/pull/7624) # 19.0.1 @@ -32,18 +32,17 @@ # 19.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 18.0.0 - [changed] Bump internal dependencies - [changed] Internal support for `SafetyNet` has been dropped, as the - [SafetyNet Attestation API has been - deprecated.](https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline#safetynet_attestation_deprecation_timeline) + [SafetyNet Attestation API has been deprecated.](https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline#safetynet_attestation_deprecation_timeline) ## Kotlin @@ -75,15 +74,14 @@ Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-appcheck-ktx` to `com.google.firebase:firebase-appcheck` under the - `com.google.firebase.appcheck` package. For details, see the [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.appcheck` 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-appcheck-ktx` have been added to `com.google.firebase:firebase-appcheck` under the `com.google.firebase.appcheck` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-appcheck-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) + 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 @@ -118,11 +116,12 @@ Kotlin extensions library has no additional updates. # 16.1.1 - [changed] Migrated [app_check] SDKs to use standard Firebase executors. - (GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: - .external} and + (GitHub + [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external} + and [#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external}) -- [changed] Moved Task continuations off the main thread. (GitHub - [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) +- [changed] Moved Task continuations off the main thread. + (GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external}) ## Kotlin @@ -139,24 +138,23 @@ Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-appcheck` library. The Kotlin extensions library has the following additional updates: -- [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-appcheck-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-appcheck-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. # 16.0.1 -- [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). # 16.0.0 - [changed] [app_check] has exited beta and is now generally available for use. -- [feature] Added support for [Play - Integrity](https://developer.android.com/google/play/integrity) as an +- [feature] Added support for + [Play Integrity](https://developer.android.com/google/play/integrity) as an attestation provider. # 16.0.0-beta06 diff --git a/firebase-abt/CHANGELOG.md b/firebase-abt/CHANGELOG.md index 2593d12549c..e00b478a5a9 100644 --- a/firebase-abt/CHANGELOG.md +++ b/firebase-abt/CHANGELOG.md @@ -7,11 +7,11 @@ # 23.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 22.0.0 @@ -32,8 +32,8 @@ initiative](https://firebase.google.com/docs/android/kotlin-migration). # 21.0.2 -- [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). # 21.0.1 diff --git a/firebase-appdistribution-api/CHANGELOG.md b/firebase-appdistribution-api/CHANGELOG.md index fbacd78361f..8cf0bdd49ef 100644 --- a/firebase-appdistribution-api/CHANGELOG.md +++ b/firebase-appdistribution-api/CHANGELOG.md @@ -19,11 +19,11 @@ # 16.0.0-beta16 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 16.0.0-beta15 @@ -69,17 +69,16 @@ library. The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-appdistribution-api-ktx` to `com.google.firebase:firebase-appdistribution-api` under the - `com.google.firebase.appdistribution` package. For details, see the [FAQ - about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.appdistribution` 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-appdistribution-api-ktx` have been added to `com.google.firebase:firebase-appdistribution-api` under the `com.google.firebase.appdistribution` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-appdistribution-api-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) + details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -98,8 +97,8 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta08 -- [fixed] Fixed an issue where a crash happened whenever a feedback - notification was shown on devices running Android 4.4 and lower. +- [fixed] Fixed an issue where a crash happened whenever a feedback notification + was shown on devices running Android 4.4 and lower. ## Kotlin @@ -119,8 +118,7 @@ library. The Kotlin extensions library has no additional updates. # 16.0.0-beta06 - [feature] Added support for in-app tester feedback. To learn more, see - [Collect feedback from - testers](/docs/app-distribution/collect-feedback-from-testers?platform=android). + [Collect feedback from testers](/docs/app-distribution/collect-feedback-from-testers?platform=android). - [fixed] Fixed a bug where only the last listener added to an `UpdateTask` using `addOnProgressListener()` would receive updates. @@ -139,18 +137,17 @@ library. The Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-appdistribution-api` library. The Kotlin extensions library has the following additional updates: -- [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-appdistribution-api-ktx` as a transitive dependency, - which exposes the `Task.await()` suspend function to convert a +- [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-appdistribution-api-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. # 16.0.0-beta04 -- [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 @@ -161,18 +158,16 @@ library. The Kotlin extensions library has no additional updates. - [feature] The [appdistro] SDK has been split into two libraries: - `firebase-appdistribution-api` - The API-only library
This new API-only -library is functional only when the full [appdistro] SDK implementation -(`firebase-appdistribution`) is present. `firebase-appdistribution-api` can be -included in all [build -variants](https://developer.android.com/studio/build/build-variants){: -.external}. + library is functional only when the full [appdistro] SDK implementation + (`firebase-appdistribution`) is present. `firebase-appdistribution-api` can + be included in all + [build variants](https://developer.android.com/studio/build/build-variants){: .external}. - `firebase-appdistribution` - The full SDK implementation
This full SDK -implementation is optional and should only be included in pre-release builds. - -Visit the documentation to learn how to [add these -SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to -your Android app. + implementation is optional and should only be included in pre-release + builds. Visit the documentation to learn how to + [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) + to your Android app. ## Kotlin diff --git a/firebase-appdistribution/CHANGELOG.md b/firebase-appdistribution/CHANGELOG.md index be576df966b..367dc045f13 100644 --- a/firebase-appdistribution/CHANGELOG.md +++ b/firebase-appdistribution/CHANGELOG.md @@ -20,7 +20,7 @@ # 16.0.0-beta16 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. # 16.0.0-beta15 @@ -49,8 +49,8 @@ higher. # 16.0.0-beta08 -- [fixed] Fixed an issue where a crash happened whenever a feedback - notification was shown on devices running Android 4.4 and lower. +- [fixed] Fixed an issue where a crash happened whenever a feedback notification + was shown on devices running Android 4.4 and lower. # 16.0.0-beta07 @@ -60,8 +60,7 @@ higher. # 16.0.0-beta06 - [feature] Added support for in-app tester feedback. To learn more, see - [Collect feedback from - testers](/docs/app-distribution/collect-feedback-from-testers). + [Collect feedback from testers](/docs/app-distribution/collect-feedback-from-testers). - [fixed] Fixed a bug where only the last listener added to an `UpdateTask` using `addOnProgressListener()` would receive updates. @@ -74,18 +73,16 @@ higher. - [feature] The [appdistro] SDK has been split into two libraries: - `firebase-appdistribution-api` - The API-only library
This new API-only -library is functional only when the full [appdistro] SDK implementation -(`firebase-appdistribution`) is present. `firebase-appdistribution-api` can be -included in all [build -variants](https://developer.android.com/studio/build/build-variants){: -.external}. + library is functional only when the full [appdistro] SDK implementation + (`firebase-appdistribution`) is present. `firebase-appdistribution-api` can + be included in all + [build variants](https://developer.android.com/studio/build/build-variants){: .external}. - `firebase-appdistribution` - The full SDK implementation
This full SDK -implementation is optional and should only be included in pre-release builds. - -Visit the documentation to learn how to [add these -SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) to -your Android app. + implementation is optional and should only be included in pre-release + builds. Visit the documentation to learn how to + [add these SDKs](/docs/app-distribution/set-up-alerts?platform=android#add-appdistro) + to your Android app. ## Kotlin @@ -95,8 +92,8 @@ your Android app. # 16.0.0-beta02 -- [fixed] Fixed a bug that prevented testers from signing in when the app had - an underscore in the package name. +- [fixed] Fixed a bug that prevented testers from signing in when the app had an + underscore in the package name. - [fixed] Fixed a UI bug where the APK download notification displayed the incorrect error message. - [changed] Internal improvements to tests. @@ -109,8 +106,8 @@ The Kotlin extensions library has no additional updates. # 16.0.0-beta01 - [feature] The [appdistro] Android SDK is now available in beta. You can use - this SDK to notify testers in-app when a new test build is available. To - learn more, visit the [[appdistro] reference + this SDK to notify testers in-app when a new test build is available. To learn + more, visit the [[appdistro] reference documentation](/docs/reference/android/com/google/firebase/appdistribution/package-summary). ## Kotlin diff --git a/firebase-common/CHANGELOG.md b/firebase-common/CHANGELOG.md index 2e49c2fe742..a079139719e 100644 --- a/firebase-common/CHANGELOG.md +++ b/firebase-common/CHANGELOG.md @@ -19,28 +19,26 @@ # 22.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 21.0.0 - [fixed] Correctly declare dependency on firebase-components, issue #5732 - [changed] Added extension method `Random.nextAlphanumericString()` (PR #5818) - [changed] Migrated internal `SharedPreferences` usages to `DataStore`. - ([GitHub PR - #6801](https://github.com/firebase/firebase-android-sdk/pull/6801){ - .external}) + ([GitHub PR #6801](https://github.com/firebase/firebase-android-sdk/pull/6801){ .external}) # 20.4.0 - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-common-ktx` to - `com.google.firebase:firebase-common` under the `com.google.firebase` - package. For details, see the [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase:firebase-common` under the `com.google.firebase` package. + For details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -49,8 +47,8 @@ initiative](https://firebase.google.com/docs/android/kotlin-migration). `com.google.firebase package`, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-common-ktx` are now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the FAQ - about this initiative. [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + about this initiative. + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) # 20.3.3 diff --git a/firebase-components/CHANGELOG.md b/firebase-components/CHANGELOG.md index 10c50f6962f..9d69866d17d 100644 --- a/firebase-components/CHANGELOG.md +++ b/firebase-components/CHANGELOG.md @@ -8,7 +8,7 @@ # 19.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. # 18.0.1 diff --git a/firebase-components/firebase-dynamic-module-support/CHANGELOG.md b/firebase-components/firebase-dynamic-module-support/CHANGELOG.md index a4ca662c16f..7f933fb2bf1 100644 --- a/firebase-components/firebase-dynamic-module-support/CHANGELOG.md +++ b/firebase-components/firebase-dynamic-module-support/CHANGELOG.md @@ -3,7 +3,7 @@ # 16.0.0-beta04 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. # 16.0.0-beta03 diff --git a/firebase-config/CHANGELOG.md b/firebase-config/CHANGELOG.md index d23b8e4abee..3ded7658782 100644 --- a/firebase-config/CHANGELOG.md +++ b/firebase-config/CHANGELOG.md @@ -13,16 +13,16 @@ # 23.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. -- [changed] This update introduces improvements to how the SDK handles - real-time requests when a Firebase project has exceeded its available quota - for real-time services. Released in anticipation of future quota enforcement, - this change is designed to fetch the latest template even when the quota is + higher. +- [changed] This update introduces improvements to how the SDK handles real-time + requests when a Firebase project has exceeded its available quota for + real-time services. Released in anticipation of future quota enforcement, this + change is designed to fetch the latest template even when the quota is exhausted. - [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). + 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). # 22.1.2 @@ -48,8 +48,8 @@ Kotlin extensions library has no additional updates. # 22.1.0 - [feature] Added support for custom signal targeting in Remote Config. Use - `setCustomSignals` API for setting custom signals and use them to build - custom targeting conditions in Remote Config. + `setCustomSignals` API for setting custom signals and use them to build custom + targeting conditions in Remote Config. ## Kotlin @@ -77,14 +77,14 @@ Kotlin extensions library has no additional updates. # 21.6.3 -- [fixed] Fixed a bug that could cause a crash if the app was backgrounded - while it was listening for real-time Remote Config updates. For more - information, see #5751 +- [fixed] Fixed a bug that could cause a crash if the app was backgrounded while + it was listening for real-time Remote Config updates. For more information, + see #5751 # 21.6.2 -- [fixed] Fixed an issue that could cause [remote_config] personalizations to - be logged early in specific cases. +- [fixed] Fixed an issue that could cause [remote_config] personalizations to be + logged early in specific cases. - [fixed] Fixed an issue where the connection to the real-time Remote Config backend could remain open in the background. @@ -112,15 +112,14 @@ Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-config-ktx` to `com.google.firebase:firebase-config` under the - `com.google.firebase.remoteconfig` package. For details, see the [FAQ about - this initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.remoteconfig` 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-config-ktx` have been added to `com.google.firebase:firebase-config` under the `com.google.firebase.remoteconfig` package, and all the Kotlin extensions - (KTX) APIs in `com.google.firebase:firebase-config-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) + (KTX) APIs in `com.google.firebase:firebase-config-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 @@ -180,18 +179,17 @@ Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-config` library. The Kotlin extensions library has the following additional updates: -- [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-config-ktx` as a transitive dependency, which exposes - the `Task.await()` suspend function to convert a +- [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-config-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. # 21.1.2 -- [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 @@ -340,11 +338,10 @@ Kotlin extensions library has no additional updates. # 19.2.0 - [changed] Migrated to use the [firebase_installations] service _directly_ - instead of using an indirect dependency via the Firebase Instance ID SDK. - -{% include -"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" -%} + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} - [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 @@ -415,9 +412,9 @@ Kotlin extensions library has no additional updates. # 19.0.4 -- [fixed] Resolved [known - issue](//github.com/firebase/firebase-android-sdk/issues/973) where network - calls may fail on devices using API 19 and earlier. +- [fixed] Resolved + [known issue](//github.com/firebase/firebase-android-sdk/issues/973) where + network calls may fail on devices using API 19 and earlier. ## Kotlin @@ -426,9 +423,9 @@ Kotlin extensions library has no additional updates. # 19.0.3 -- [fixed] Resolved [known - issue](https://github.com/firebase/firebase-android-sdk/issues/787) where the - [firebase_remote_config] SDK threw an error when Android +- [fixed] Resolved + [known issue](https://github.com/firebase/firebase-android-sdk/issues/787) + where the [firebase_remote_config] SDK threw an error when Android [StrictMode](https://developer.android.com/reference/android/os/StrictMode) was turned on. - [fixed] Resolved issue where setting Byte Arrays via @@ -458,8 +455,8 @@ Kotlin extensions library has no additional updates. # 19.0.1 -- [fixed] Resolved known issue where certain unicode characters were not - encoded correctly. The issue was introduced in v19.0.0. +- [fixed] Resolved known issue where certain unicode characters were not encoded + correctly. The issue was introduced in v19.0.0. # 19.0.0 diff --git a/firebase-crashlytics-ndk/CHANGELOG.md b/firebase-crashlytics-ndk/CHANGELOG.md index d7952a79ed2..2e85eb18c84 100644 --- a/firebase-crashlytics-ndk/CHANGELOG.md +++ b/firebase-crashlytics-ndk/CHANGELOG.md @@ -32,7 +32,7 @@ # 20.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. # 19.4.4 @@ -142,8 +142,8 @@ higher. # 18.3.2 - [fixed] Fixed an - [issue](https://github.com/firebase/firebase-android-sdk/issues/4313){: - .external} preventing native crashes from being reported for Android API 29+. + [issue](https://github.com/firebase/firebase-android-sdk/issues/4313){: .external} + preventing native crashes from being reported for Android API 29+. # 18.3.1 @@ -163,8 +163,8 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 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). # 18.2.12 @@ -220,12 +220,12 @@ version of the SDK (v18.3.1+ or [bom] v31.0.1+).** # 18.2.1 -- [fixed] Improved support for NDK crash reporting when using [Play Feature - Delivery](/docs/android/learn-more#dynamic-feature-modules). Previously, - `firebase-crashlytics-ndk` needed to be a dependency of the app module to - consistently report native crashes for all supported Android versions. - [crashlytics] will now report native crashes when used as a dependency of a - feature module. +- [fixed] Improved support for NDK crash reporting when using + [Play Feature Delivery](/docs/android/learn-more#dynamic-feature-modules). + Previously, `firebase-crashlytics-ndk` needed to be a dependency of the app + module to consistently report native crashes for all supported Android + versions. [crashlytics] will now report native crashes when used as a + dependency of a feature module. - [changed] Updated `firebase-crashlytics` dependency to v18.2.1. # 18.2.0 @@ -268,8 +268,8 @@ the [crashlytics] NDK SDK and above. - [fixed] Upgraded underlying native crash reporting library to [Crashpad](//crashpad.chromium.org){: .external}. This addresses emerging issues with capturing certain types of native crashes on Android 10+ using - [Breakpad](//chromium.googlesource.com/breakpad){: .external}. ([Github Issue - #1678](//github.com/firebase/firebase-android-sdk/issues/1678){: .external}) + [Breakpad](//chromium.googlesource.com/breakpad){: .external}. + ([Github Issue #1678](//github.com/firebase/firebase-android-sdk/issues/1678){: .external}) # 17.2.2 @@ -278,8 +278,7 @@ the [crashlytics] NDK SDK and above. # 17.2.1 - [fixed] Fixed signal handler to properly release storage on app exit. - ([Github Issue - #1749](https://github.com/firebase/firebase-android-sdk/issues/1749)) + ([Github Issue #1749](https://github.com/firebase/firebase-android-sdk/issues/1749)) - [changed] Updated `firebase-crashlytics` dependency to v17.2.1. # 17.1.1 diff --git a/firebase-crashlytics/CHANGELOG.md b/firebase-crashlytics/CHANGELOG.md index cb48d36c37e..7aee59ea497 100644 --- a/firebase-crashlytics/CHANGELOG.md +++ b/firebase-crashlytics/CHANGELOG.md @@ -35,13 +35,13 @@ # 20.0.0 - [changed] **Breaking Change**: Removed deprecated public constructor -`KeyValueBuilder(crashlytics: FirebaseCrashlytics)` + `KeyValueBuilder(crashlytics: FirebaseCrashlytics)` - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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 @@ -69,9 +69,9 @@ Kotlin extensions library has no additional updates. 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] + [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] + [CVE-2024-7254](https://github.com/advisories/GHSA-735f-pc8j-v9w8) [#6688] ## Kotlin @@ -130,13 +130,11 @@ Kotlin extensions library has no additional updates. # 19.1.0 - [feature] Added the `isCrashlyticsCollectionEnabled` API to check if - Crashlytics collection is enabled. (GitHub - [#5919](https://github.com/firebase/firebase-android-sdk/issues/5919){: - .external}) + 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 - [#4345](https://github.com/firebase/firebase-android-sdk/issues/4345){: - .external}) + thread. + (GitHub [#4345](https://github.com/firebase/firebase-android-sdk/issues/4345){: .external}) - [changed] Internal changes to the way session IDs are generated. ## Kotlin @@ -175,8 +173,8 @@ 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] Added keep rule for shrinkage of Crashlytics build resources in strict + mode. ## Kotlin @@ -213,15 +211,15 @@ 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. +- [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 @@ -233,15 +231,14 @@ Kotlin extensions library has no additional updates. - [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) + `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 `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) + `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 @@ -295,16 +292,13 @@ Kotlin extensions library has no additional updates. # 18.3.6 -- [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 lifecycle. (GitHub - [#4608](https://github.com/firebase/firebase-android-sdk/pull/4608){: - .external}, - [#4786](https://github.com/firebase/firebase-android-sdk/pull/4786){: - .external}) +- [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 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 @@ -331,8 +325,8 @@ Kotlin extensions library has no additional updates. latest version (v18.3.5+) which contains a fix. -- [changed] Improved crash reporting reliability for crashes that occur early - in the app's lifecycle. +- [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 versions. @@ -364,8 +358,8 @@ 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. + [issue](https://github.com/firebase/firebase-android-sdk/issues/4223){: .external} + in v18.3.0 that caused a `NoClassDefFoundError` in specific cases. ## Kotlin @@ -387,18 +381,17 @@ latest version of the SDK (v18.3.1+ or [bom] v31.0.1+).** 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 - [`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 +- [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 @@ -463,8 +456,8 @@ Kotlin extensions library has no additional updates. # 18.2.7 -- [changed] Improved runtime efficiency of the [`setCustomKey` - functions](/docs/crashlytics/customize-crash-reports?platform=android#add-keys), +- [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) @@ -486,9 +479,9 @@ 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 session ended. All session-specific files are now - properly cleaned up. +- [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 and removal of intermediate [crashlytics] files. @@ -562,10 +555,10 @@ Kotlin extensions library has no additional updates. - [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. + 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. ## Kotlin @@ -591,8 +584,8 @@ Kotlin extensions library has no additional updates. - [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}) + API to allow bulk logging of custom keys and values. + ([Github PR #2443](//github.com/firebase/firebase-android-sdk/pull/2443){: .external}) ## Kotlin @@ -613,9 +606,9 @@ Kotlin extensions library has no additional updates. - [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. ([Github Issue - #2013](//github.com/firebase/firebase-android-sdk/issues/2013){: .external}) +- [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 @@ -625,8 +618,8 @@ 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. ([Github Issue - #1935](//github.com/firebase/firebase-android-sdk/issues/1935){: .external}) + 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 [crashlytics] on multiple processes. @@ -638,19 +631,17 @@ 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 thread. ([Github PR - #1739](//github.com/firebase/firebase-android-sdk/pull/1739){: .external}) + 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 `null` to clear any previously set value. ([Github PR - #1434](//github.com/firebase/firebase-android-sdk/pull/1434){: .external}) + 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 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" -%} + ([Github PR #1760](//github.com/firebase/firebase-android-sdk/pull/1760){: .external}) + {% include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} ## Kotlin @@ -660,10 +651,10 @@ Kotlin extensions library has no additional updates. # 17.1.1 - [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}). + 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 @@ -672,27 +663,24 @@ Kotlin extensions library has no additional updates. # 17.1.0 -- [fixed] Updated [crashlytics] integration with [firebase_analytics] to - include native crashes in crash-free users counts. +- [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 optional file is unavailable. ([Github Issue - #1559](//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614){: - .external}) + 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 extensions library transitively includes the - base `firebase-crashlytics` library. To learn more, visit the [[crashlytics] - KTX +- [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]. ([Github Issue - #1531](https://github.com/firebase/firebase-android-sdk/issues/1531){: - .external}) + [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+. @@ -726,9 +714,9 @@ Kotlin extensions library has no additional updates. - [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]. + 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 diff --git a/firebase-database/CHANGELOG.md b/firebase-database/CHANGELOG.md index e0018f68690..0b3bcc0acf6 100644 --- a/firebase-database/CHANGELOG.md +++ b/firebase-database/CHANGELOG.md @@ -7,11 +7,11 @@ # 22.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 21.0.0 @@ -38,15 +38,14 @@ Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-database-ktx` to `com.google.firebase:firebase-database` under the - `com.google.firebase.database` package. For details, see the [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.database` 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-database-ktx` have been added to `com.google.firebase:firebase-database` under the `com.google.firebase.database` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-database-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) + 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 @@ -93,11 +92,10 @@ Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-database` library. The Kotlin extensions library has the following additional updates: -- [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-database-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-database-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. - [feature] Added @@ -108,10 +106,10 @@ Kotlin extensions library has the following additional updates: # 20.0.6 -- [changed] Updated dependency of `play-services-basement` to its latest - version (v18.1.0). -- [fixed] Fixed issue where `Query.get()` was propagating events to listeners - on unrelated queries. +- [changed] Updated dependency of `play-services-basement` to its latest version + (v18.1.0). +- [fixed] Fixed issue where `Query.get()` was propagating events to listeners on + unrelated queries. ## Kotlin @@ -143,8 +141,8 @@ Kotlin extensions library has no additional updates. # 20.0.3 -- [fixed] Fixed a crash that prevented the SDK from connecting to the backend - if a credential refresh was unsuccesful. +- [fixed] Fixed a crash that prevented the SDK from connecting to the backend if + a credential refresh was unsuccesful. ## Kotlin diff --git a/firebase-dataconnect/CHANGELOG.md b/firebase-dataconnect/CHANGELOG.md index 301a22753c1..1d016dec091 100644 --- a/firebase-dataconnect/CHANGELOG.md +++ b/firebase-dataconnect/CHANGELOG.md @@ -24,8 +24,8 @@ # 17.3.2 -- [fixed] Realtime query subscriptions now correctly throw an exception when - the Firebase Auth user changes, instead of silently stopping emitting. +- [fixed] Realtime query subscriptions now correctly throw an exception when the + Firebase Auth user changes, instead of silently stopping emitting. ([#8283](https://github.com/firebase/firebase-android-sdk/pull/8283)) - [fixed] Realtime query subscriptions could fail abruptly if the auth token changed while connected. @@ -36,15 +36,15 @@ - [fixed] Expired Auth and/or App Check tokens were not automatically refreshed when rejected by the server upon connection. ([#8346](https://github.com/firebase/firebase-android-sdk/pull/8346)) -- [changed] Realtime query subscriptions now include SDK type metadata (core - vs. generated SDK) in request headers, matching the behavior of standard - query executions. +- [changed] Realtime query subscriptions now include SDK type metadata (core vs. + generated SDK) in request headers, matching the behavior of standard query + executions. ([#8356](https://github.com/firebase/firebase-android-sdk/pull/8356)) # 17.3.1 -- [fixed] Queries executed with FetchPolicy.CACHE_ONLY now fail, as expected, - if local caching is not enabled, instead of behaving like SERVER_ONLY. +- [fixed] Queries executed with FetchPolicy.CACHE_ONLY now fail, as expected, if + local caching is not enabled, instead of behaving like SERVER_ONLY. ([#8214](https://github.com/firebase/firebase-android-sdk/pull/8214)) - [changed] Realtime query results now update the local cache as query results are received. @@ -57,8 +57,8 @@ # 17.3.0 -- [feature] `QuerySubscription.flow` gains [realtime - updates](https://firebase.google.com/docs/sql-connect/realtime). +- [feature] `QuerySubscription.flow` gains + [realtime updates](https://firebase.google.com/docs/sql-connect/realtime). ([#8186](https://github.com/firebase/firebase-android-sdk/pull/8186)) - [changed] Internal fix of wasteful computation only meant for debug logging. ([#8126](https://github.com/firebase/firebase-android-sdk/pull/8126)) @@ -81,8 +81,8 @@ - [changed] Ensure exceptions are not silently ignored when closing `FirebaseDataConnect` instances. ([#7909](https://github.com/firebase/firebase-android-sdk/pull/7909)) -- [changed] Internal change to use `SecureRandom` when generating operation - IDs. ([#7910](https://github.com/firebase/firebase-android-sdk/pull/7910)) +- [changed] Internal change to use `SecureRandom` when generating operation IDs. + ([#7910](https://github.com/firebase/firebase-android-sdk/pull/7910)) - [changed] Internal refactor to use immutable byte arrays. ([#7957](https://github.com/firebase/firebase-android-sdk/pull/7957)) @@ -97,7 +97,7 @@ [#7887](https://github.com/firebase/firebase-android-sdk/pull/7887)) - [fixed] Fix UnsupportedOperationException when serializing lists of *nullable* AnyValue. -([#7864](https://github.com/firebase/firebase-android-sdk/pull/7864)) + ([#7864](https://github.com/firebase/firebase-android-sdk/pull/7864)) # 17.1.4 @@ -127,9 +127,9 @@ - [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. + 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 @@ -143,7 +143,7 @@ # 17.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. - [changed] Removed superfluous and noisy debug logging of operation variables. # 16.0.3 @@ -166,8 +166,8 @@ higher. - [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. + 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 @@ -196,11 +196,11 @@ higher. withVariablesSerializer(), and withDataDeserializer(). ([#6424](https://github.com/firebase/firebase-android-sdk/pull/6424)) - [feature] GeneratedConnector, GeneratedQuery, and GeneratedMutation now must - implement equals() to be a _logical_ comparsion, rather than just checking - for _referencial_ equality using the `===` operator. + 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 it, requiring applications that make use of these +- [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. @@ -211,16 +211,15 @@ higher. ([#6434](https://github.com/firebase/firebase-android-sdk/pull/6434)) - [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. + 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 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. + 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 diff --git a/firebase-datatransport/CHANGELOG.md b/firebase-datatransport/CHANGELOG.md index f72e1874c61..a4323c5c609 100644 --- a/firebase-datatransport/CHANGELOG.md +++ b/firebase-datatransport/CHANGELOG.md @@ -7,7 +7,7 @@ # 20.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. # 19.0.0 diff --git a/firebase-dynamic-links/CHANGELOG.md b/firebase-dynamic-links/CHANGELOG.md index b41bec8736a..86f447ef017 100644 --- a/firebase-dynamic-links/CHANGELOG.md +++ b/firebase-dynamic-links/CHANGELOG.md @@ -1,13 +1,13 @@ # 23.0.0 - [removed] **Breaking change**: FirebaseDynamicLinks has been removed. See -https://firebase.google.com/support/dynamic-links-faq for more info. + https://firebase.google.com/support/dynamic-links-faq for more info. # 22.1.0 - [deprecated] `firebase-dynamic-links` is deprecated. For information about - timelines and alternatives, see the [irebase-dynamic-links deprecation - FAQ](/support/dynamic-links-faq). + timelines and alternatives, see the + [irebase-dynamic-links deprecation FAQ](/support/dynamic-links-faq). ## Kotlin @@ -28,16 +28,16 @@ The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-dynamic-links-ktx` to `com.google.firebase:firebase-dynamic-links` under the - `com.google.firebase.dynamiclinks` package. For details, see the [FAQ about - this initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.dynamiclinks` 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-dynamic-links-ktx` have been added to `com.google.firebase:firebase-dynamic-links` under the `com.google.firebase.dynamiclinks` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-dynamic-links-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) + details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -54,18 +54,17 @@ The Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-dynamic-links` library. The Kotlin extensions library has the following additional updates: -- [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-dynamic-links-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-dynamic-links-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. # 21.0.2 -- [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 @@ -87,9 +86,10 @@ The Kotlin extensions library has no additional updates. # 21.0.0 -- [changed] Due to its [dependency on Google Play - services](/docs/android/android-play-services), this SDK now requires devices - and emulators to target API level 19 (KitKat) or higher and to use Android +- [changed] Due to its + [dependency on Google Play services](/docs/android/android-play-services), + this SDK now requires devices and emulators to target API level 19 (KitKat) or + higher and to use Android 4.4 or higher. - [fixed] Fixed non-null annotation. #2336 @@ -148,8 +148,8 @@ the following additional updates: ## Kotlin - [feature] The beta release of a [ddls] Android library with Kotlin extensions - is now available. The Kotlin extensions library transitively includes the - base `firebase-dynamic-links` library. To learn more, visit the [[ddls] KTX + is now available. The Kotlin extensions library transitively includes the base + `firebase-dynamic-links` library. To learn more, visit the [[ddls] KTX documentation](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ktx/package-summary). # 19.0.0 @@ -159,8 +159,8 @@ the following additional updates: # 16.2.0 -- [changed] Refactored code to ensure functionality alignment with other - updated Firebase libraries. +- [changed] Refactored code to ensure functionality alignment with other updated + Firebase libraries. - [changed] Updated minSdkVersion to API level 16. # 16.1.7 @@ -172,7 +172,7 @@ the following additional updates: - [fixed] Fixed an issue that caused short link creation to fail when creating links through `FirebaseDynamicLinks.getInstance().createDynamicLink().buildShortDynamicLink()` - using Google Play Services 13.2.80 and FDL SDK 16.1.0. The issue only - occurred when creating shortening links from parameters, links created using + using Google Play Services 13.2.80 and FDL SDK 16.1.0. The issue only occurred + when creating shortening links from parameters, links created using preconstructed long links from `setLongLink()` were unaffected. This fix also addresses issues in newer versions of Google Play Services. diff --git a/firebase-firestore/CHANGELOG.md b/firebase-firestore/CHANGELOG.md index b25824893f8..c00b71bc075 100644 --- a/firebase-firestore/CHANGELOG.md +++ b/firebase-firestore/CHANGELOG.md @@ -3,8 +3,8 @@ # 26.5.0 - [changed] Increased the default gRPC flow control window size from 64KB to - 256KB to speed up large document reads, and added support for configuring - this window size via + 256KB to speed up large document reads, and added support for configuring this + window size via `FirebaseFirestoreSettings.Builder.setGrpcFlowControlWindow()`. - [changed] Increased the gRPC maximum inbound message size limit to 17MB to support downloading Cloud Firestore documents of up to 16MB. @@ -53,9 +53,8 @@ [#7985](https://github.com/firebase/firebase-android-sdk/pull/7985) - [feature] Add public preview support for full-text search and geo search. [#7949](https://github.com/firebase/firebase-android-sdk/pull/7949) -- [feature] Added support for `ltrim`, `rtrim`, `stringIndexOf`, - `stringRepeat`, `stringReplaceOne`, and `stringReplaceAll` Pipeline - expressions. +- [feature] Added support for `ltrim`, `rtrim`, `stringIndexOf`, `stringRepeat`, + `stringReplaceOne`, and `stringReplaceAll` Pipeline expressions. [#7978](https://github.com/firebase/firebase-android-sdk/pull/7978) - [feature] Added support for `mapGet` `mapSet`, `mapEntries`, and `mapKeys` Pipeline expressions. @@ -111,13 +110,13 @@ # 26.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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 and received some improvements in v25.1.3. + 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 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` classes instead of Firestore's bespoke implementations. @@ -231,8 +230,8 @@ Kotlin extensions library has no additional updates. [#5573](//github.com/firebase/firebase-android-sdk/pull/5573) - [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. + 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. [#5417](https://github.com/firebase/firebase-android-sdk/issues/5417) @@ -262,15 +261,14 @@ Kotlin extensions library has no additional updates. - [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) + `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 `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) + 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 @@ -292,8 +290,7 @@ Kotlin extensions library has no additional updates. - [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}). + ([GitHub [#4987](//github.com/firebase/firebase-android-sdk/pull/4987){: .external}). ## Kotlin @@ -310,8 +307,8 @@ Kotlin extensions library has no additional updates. - [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. (GitHub - [#5091](//github.com/firebase/firebase-android-sdk/issues/5091){: .external}) + ConcurrentModificationException. + (GitHub [#5091](//github.com/firebase/firebase-android-sdk/issues/5091){: .external}) ## Kotlin @@ -320,11 +317,11 @@ Kotlin extensions library has no additional updates. # 24.6.1 -- [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}) +- [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 @@ -334,13 +331,12 @@ Kotlin extensions library has no additional updates. # 24.6.0 - [fixed] Fixed stack overflow caused by deeply nested server timestamps. - (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: - .external}) -- [feature] Added new [cache config - APIs]() + (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) +- [feature] Added new + [cache config APIs]() to customize the SDK's cache setup. -- [feature] Added [LRU garbage - collector](/docs/reference/android/com/google/firebase/firestore/MemoryLruGcSettings) +- [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 [`FirebaseFirestoreSettings`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings):
@@ -359,8 +355,7 @@ 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}) + (GitHub [#4702](//github.com/firebase/firebase-android-sdk/issues/4702){: .external}) ## Kotlin @@ -382,8 +377,8 @@ 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] 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. @@ -440,11 +435,10 @@ Kotlin extensions library has no additional updates. 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 - [`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 +- [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. @@ -458,8 +452,8 @@ The Kotlin extensions library transitively includes the updated `firebase-firest # 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 @@ -527,8 +521,8 @@ Kotlin extensions library has no additional updates. - [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. + 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). ## Kotlin @@ -646,9 +640,9 @@ Kotlin extensions library has no additional updates. - [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 the `Task` objects returned from `get()` invocations - to never complete. #2404 +- [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 @@ -661,9 +655,9 @@ Kotlin extensions library has no additional updates. [`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. + 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 @@ -723,11 +717,10 @@ Kotlin extensions library has no additional updates. query operators. - `Query.whereNotIn()` finds documents where a specified field's value is not -in a specified array. + in a specified array. - `Query.whereNotEqualTo()` finds documents where a specified field's value -does not equal the specified value. - -Neither query operator finds documents where the specified field isn't present. + does not equal the 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. @@ -776,8 +769,8 @@ 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 crashes caused by apps that depend on the wrong flavor of +- [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 @@ -804,8 +797,8 @@ Kotlin extensions library has no additional updates. - [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 to normal. +- [changed] Cloud Firestore now recovers more quickly when connections suffering + packet loss return to normal. ## Kotlin @@ -826,13 +819,12 @@ Kotlin extensions library has no additional updates. - [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. + 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 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. + changes accumulate while the query is inactive. Queries that use the `limit()` + API may not always benefit, depending on the accumulated changes. ## Kotlin @@ -841,8 +833,8 @@ 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 they were unable to connect to [firestore]. +- [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 document in different threads could cause a `NullPointerException`. @@ -903,13 +895,13 @@ Kotlin extensions library has no additional updates. - [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. + 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 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. + 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. @@ -925,17 +917,17 @@ Kotlin extensions library has no additional updates. should automatically populate it with the document's ID. - [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. + 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 documents in a collection. - [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)). + earlier (for more information, refer to + [TLS on Android](https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-on-android)). ## Kotlin @@ -948,9 +940,9 @@ Kotlin extensions library has no additional updates. reduces the time taken to produce the first query result. - [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. + reliable tests. Refer to this + [GitHub issue](https://github.com/firebase/firebase-js-sdk/issues/449) for + more details. ## Kotlin @@ -961,9 +953,9 @@ Kotlin extensions library has no additional updates. - [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. + Refer to + [GitHub issue #428](https://github.com/firebase/firebase-android-sdk/issues/428) + for more details. ## Kotlin @@ -972,10 +964,10 @@ Kotlin extensions library has no additional updates. # 19.0.1 -- [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. +- [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 @@ -991,9 +983,9 @@ Kotlin extensions library has no additional updates. - [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. + 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 you use [firebase_auth], update to `firebase-auth` v17.0.0 or later to ensure functionality alignment. @@ -1022,17 +1014,17 @@ Kotlin extensions library has no additional updates. which can be used in `update()` and `set(..., SetOptions.merge())` to increment or decrement numeric field values safely without transactions. - [feature] Added functional interface - [`FirebaseFirestore.runBatch()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runBatch( - com.google.firebase.firestore.WriteBatch.Function)), similar to + [`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. + 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 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 affects internal APIs that were previously obfuscated - and are not mentioned in our documentation. + 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 serialization layer. @@ -1040,34 +1032,33 @@ Kotlin extensions library has no additional updates. - [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. +- [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 size. +- [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. # 18.0.0 - [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 + 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 `update()`, within `Map<>` objects passed to `set()`, in array +- [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 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 before a listener received the write, the app could crash. +- [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 @@ -1084,8 +1075,8 @@ Kotlin extensions library has no additional updates. - [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). + 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 to access the SQLite database from multiple threads. @@ -1104,8 +1095,8 @@ Kotlin extensions library has no additional updates. - [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 data, potentially reducing delays while offline. +- [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 `set(..., SetOptions.merge())`. - [fixed] Updated printf-style templates to ensure that they're compile time @@ -1113,8 +1104,8 @@ Kotlin extensions library has no additional updates. 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 indexes, are automatically logged as warnings in addition - to being surfaced via the API. + errors or missing indexes, are automatically logged as warnings in addition to + being surfaced via the API. # 17.1.0 @@ -1129,9 +1120,9 @@ Kotlin extensions library has no additional updates. [`FieldValue.arrayRemove()`]() to atomically add and remove elements from an array field in a document. - [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. + [`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. @@ -1139,16 +1130,16 @@ Kotlin extensions library has no additional updates. # 17.0.4 - [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. + 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 implements + [`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). diff --git a/firebase-functions/CHANGELOG.md b/firebase-functions/CHANGELOG.md index 64e21ba7400..4efe28a6bdb 100644 --- a/firebase-functions/CHANGELOG.md +++ b/firebase-functions/CHANGELOG.md @@ -19,11 +19,11 @@ # 22.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 21.2.1 @@ -79,15 +79,14 @@ Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-functions-ktx` to `com.google.firebase:firebase-functions` under the - `com.google.firebase.functions` package. For details, see the [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.functions` 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-functions-ktx` have been added to `com.google.firebase:firebase-functions` under the `com.google.firebase.functions` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-functions-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) + 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 @@ -143,18 +142,17 @@ Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-functions` library. The Kotlin extensions library has the following additional updates: -- [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-functions-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-functions-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. # 20.1.1 -- [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 @@ -244,10 +242,10 @@ Kotlin extensions library has no additional updates. ## Kotlin -- [feature] The beta release of a [functions_client] Android library with - Kotlin extensions is now available. The Kotlin extensions library - transitively includes the base `firebase-functions` library. To learn more, - visit the [[cloud_functions] KTX +- [feature] The beta release of a [functions_client] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-functions` library. To learn more, visit the + [[cloud_functions] KTX documentation](/docs/reference/kotlin/com/google/firebase/functions/ktx/package-summary). # 19.0.0 @@ -259,8 +257,8 @@ Kotlin extensions library has no additional updates. - [feature] Added [`getTimeout`](/docs/reference/android/com/google/firebase/functions/HttpsCallableReference) - method to get the timeout for a callable. For more details, refer to [GitHub - PR #574](//github.com/firebase/firebase-android-sdk/pull/574). + method to get the timeout for a callable. For more details, refer to + [GitHub PR #574](//github.com/firebase/firebase-android-sdk/pull/574). # 17.0.0 @@ -282,5 +280,5 @@ Kotlin extensions library has no additional updates. - [feature] `FirebaseFunctions.getInstance()` now allows passing in an optional region to override the default "us-central1". - [feature] New `useFunctionsEmulator` method allows testing against a local - instance of the [Cloud Functions - Emulator](https://firebase.google.com/docs/functions/local-emulator). + instance of the + [Cloud Functions Emulator](https://firebase.google.com/docs/functions/local-emulator). diff --git a/firebase-inappmessaging-display/CHANGELOG.md b/firebase-inappmessaging-display/CHANGELOG.md index 7dbdfd0e0bb..b794d7fd3ce 100644 --- a/firebase-inappmessaging-display/CHANGELOG.md +++ b/firebase-inappmessaging-display/CHANGELOG.md @@ -16,11 +16,11 @@ # 22.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 21.0.2 @@ -43,9 +43,9 @@ library. The Kotlin extensions library has no additional updates. # 21.0.0 -- [fixed] Fixed bad token exception while showing FIAM (GitHub - [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) (GitHub - [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) +- [fixed] Fixed bad token exception while showing FIAM + (GitHub [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) + (GitHub [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) ## Kotlin @@ -68,8 +68,7 @@ library. The Kotlin extensions library has no additional updates. `com.google.firebase:firebase-inappmessaging-display-ktx` to `com.google.firebase:firebase-inappmessaging-display` under the `com.google.firebase.inappmessaging.display` package. For details, see the - [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) - [deprecated] All the APIs from `com.google.firebase:firebase-inappmessaging-display-ktx` have been added to `com.google.firebase:firebase-inappmessaging-display` under the @@ -77,8 +76,8 @@ library. The Kotlin extensions library has no additional updates. extensions (KTX) APIs in `com.google.firebase:firebase-inappmessaging-display-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) + the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -110,8 +109,8 @@ library. The Kotlin extensions library has no additional updates. # 20.3.2 -- [fixed] Fixed nullpointer crash when using experiments (GitHub - [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) +- [fixed] Fixed nullpointer crash when using experiments + (GitHub [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) ## Kotlin @@ -120,8 +119,8 @@ library. The Kotlin extensions library has no additional updates. # 20.3.1 -- [fixed] Fixed nullpointer crash ([GitHub Issue - #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) +- [fixed] Fixed nullpointer crash + ([GitHub Issue #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) - [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11. @@ -135,10 +134,9 @@ library. The Kotlin extensions library has no additional updates. - [changed] Migrated [inappmessaging] Display to use standard Firebase executors. - [changed] Moved Task continuations off the main thread. -- [feature] Added a new API for [removing a dismiss - listener](). - (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: - .external}) +- [feature] Added a new API for + [removing a dismiss listener](). + (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: .external}) ## Kotlin @@ -154,18 +152,17 @@ library. The Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-inappmessaging-display` library. The Kotlin extensions library has the following additional updates: -- [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-inappmessaging-display-ktx` as a transitive - dependency, which exposes the `Task.await()` suspend function to convert a +- [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-inappmessaging-display-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. # 20.1.3 -- [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 @@ -224,8 +221,8 @@ library. The Kotlin extensions library has no additional updates. # 19.1.4 -- [fixed] Fixed in-app message button click not working in Android 11 because - of package visibility changes. +- [fixed] Fixed in-app message button click not working in Android 11 because of + package visibility changes. ## Kotlin @@ -276,15 +273,14 @@ library. The Kotlin extensions library has no additional updates. # 19.0.7 -- [fixed] Improved handling of activity transitions. (GitHub [Issue - #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and [Issue - #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) +- [fixed] Improved handling of activity transitions. (GitHub + [Issue #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and + [Issue #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) - [changed] Migrated to use the [firebase_installations] service _directly_ - instead of using an indirect dependency via the Firebase Instance ID SDK. - -{% include -"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" -%} + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} ## Kotlin @@ -294,8 +290,8 @@ library. The Kotlin extensions library has no additional updates. # 19.0.6 - [fixed] Fixed issue causing apps to become unresponsive in limited network - conditions. [GitHub Issue - #1430](//github.com/firebase/firebase-android-sdk/issues/1430) + conditions. + [GitHub Issue #1430](//github.com/firebase/firebase-android-sdk/issues/1430) ## Kotlin @@ -340,9 +336,9 @@ library. The Kotlin extensions library has no additional updates. ## Kotlin - [feature] The beta release of a [inappmessaging] Display Android library with - Kotlin extensions is now available. The Kotlin extensions library - transitively includes the base `firebase-inappmessaging-display` library. To - learn more, visit the [[inappmessaging] Display KTX + Kotlin extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-inappmessaging-display` library. To learn more, + visit the [[inappmessaging] Display KTX documentation](/docs/reference/kotlin/com/google/firebase/inappmessaging/display/ktx/package-summary). # 19.0.1 @@ -372,15 +368,15 @@ library. The Kotlin extensions library has no additional updates. - [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API level 19 (KitKat). The underlying issue was that [firestore] and [cloud_functions] couldn't agree on which ciphers to use; this update fixes - this issue by overriding the set of ciphers that they use. Refer to [GitHub - issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for - more information. + this issue by overriding the set of ciphers that they use. Refer to + [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) + for more information. # 17.1.0 - [feature] Adds functionality to programmatically register listeners for - updates on in-app engagement (for example, impression, click, display - errors). See + updates on in-app engagement (for example, impression, click, display errors). + See [`FirebaseInAppMessaging.addClickListener()`]() for more details. @@ -401,5 +397,5 @@ library. The Kotlin extensions library has no additional updates. # 17.0.0 - [feature] The initial public beta release of the Firebase In-App Messaging - Display SDK for Android is now available. To learn more, see the [Firebase - In-App Messaging documentation](/docs/in-app-messaging). + Display SDK for Android is now available. To learn more, see the + [Firebase In-App Messaging documentation](/docs/in-app-messaging). diff --git a/firebase-inappmessaging/CHANGELOG.md b/firebase-inappmessaging/CHANGELOG.md index c5a7fb3fba1..ddd25e620ae 100644 --- a/firebase-inappmessaging/CHANGELOG.md +++ b/firebase-inappmessaging/CHANGELOG.md @@ -15,11 +15,11 @@ # 22.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 21.0.2 @@ -42,9 +42,9 @@ The Kotlin extensions library has no additional updates. # 21.0.0 -- [fixed] Fixed bad token exception while showing FIAM (GitHub - [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) (GitHub - [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) +- [fixed] Fixed bad token exception while showing FIAM + (GitHub [#5567](//github.com/firebase/firebase-android-sdk/issues/5567)) + (GitHub [#5780](//github.com/firebase/firebase-android-sdk/issues/5780)) ## Kotlin @@ -66,16 +66,16 @@ The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-inappmessaging-ktx` to `com.google.firebase:firebase-inappmessaging` under the - `com.google.firebase.inappmessaging` package. For details, see the [FAQ about - this initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.inappmessaging` 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-inappmessaging-ktx` have been added to `com.google.firebase:firebase-inappmessaging` under the `com.google.firebase.inappmessaging` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-inappmessaging-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) + details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -107,8 +107,8 @@ The Kotlin extensions library has no additional updates. # 20.3.2 -- [fixed] Fixed nullpointer crash when using experiments (GitHub - [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) +- [fixed] Fixed nullpointer crash when using experiments + (GitHub [#4716](//github.com/firebase/firebase-android-sdk/issues/4716){: .external}) ## Kotlin @@ -117,8 +117,8 @@ The Kotlin extensions library has no additional updates. # 20.3.1 -- [fixed] Fixed nullpointer crash ([GitHub Issue - #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) +- [fixed] Fixed nullpointer crash + ([GitHub Issue #4214](//github.com/firebase/firebase-android-sdk/issues/4214)) - [changed] Updated gRPC to 1.52.1, and updated JavaLite, protoc, protobuf-java-util to 3.21.11. @@ -131,10 +131,9 @@ The Kotlin extensions library has no additional updates. - [changed] Migrated [inappmessaging] to use standard Firebase executors. - [changed] Moved Task continuations off the main thread. -- [feature] Added a new API for [removing a dismiss - listener](). - (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: - .external}) +- [feature] Added a new API for + [removing a dismiss listener](). + (GitHub [#4492](//github.com/firebase/firebase-android-sdk/issues/4492){: .external}) ## Kotlin @@ -150,18 +149,17 @@ The Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-inappmessaging` library. The Kotlin extensions library has the following additional updates: -- [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-inappmessaging-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-inappmessaging-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. # 20.1.3 -- [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 @@ -220,8 +218,8 @@ The Kotlin extensions library has no additional updates. # 19.1.4 -- [fixed] Fixed in-app message button click not working in Android 11 because - of package visibility changes. +- [fixed] Fixed in-app message button click not working in Android 11 because of + package visibility changes. ## Kotlin @@ -272,15 +270,14 @@ The Kotlin extensions library has no additional updates. # 19.0.7 -- [fixed] Improved handling of activity transitions. (GitHub [Issue - #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and [Issue - #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) +- [fixed] Improved handling of activity transitions. (GitHub + [Issue #1410](//github.com/firebase/firebase-android-sdk/issues/1410) and + [Issue #1092](//github.com/firebase/firebase-android-sdk/issues/1092)) - [changed] Migrated to use the [firebase_installations] service _directly_ - instead of using an indirect dependency via the Firebase Instance ID SDK. - -{% include -"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" -%} + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} ## Kotlin @@ -290,8 +287,8 @@ The Kotlin extensions library has no additional updates. # 19.0.6 - [fixed] Fixed issue causing apps to become unresponsive in limited network - conditions. [GitHub Issue - #1430](//github.com/firebase/firebase-android-sdk/issues/1430) + conditions. + [GitHub Issue #1430](//github.com/firebase/firebase-android-sdk/issues/1430) ## Kotlin @@ -367,15 +364,15 @@ The Kotlin extensions library has no additional updates. - [fixed] Fixed [firestore] and [inappmessaging] compatibility on Android API level 19 (KitKat). The underlying issue was that [firestore] and [cloud_functions] couldn't agree on which ciphers to use; this update fixes - this issue by overriding the set of ciphers that they use. Refer to [GitHub - issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) for - more information. + this issue by overriding the set of ciphers that they use. Refer to + [GitHub issue 244](https://github.com/firebase/firebase-android-sdk/issues/244) + for more information. # 17.1.0 - [feature] Adds functionality to programmatically register listeners for - updates on in-app engagement (for example, impression, click, display - errors). See + updates on in-app engagement (for example, impression, click, display errors). + See [`FirebaseInAppMessaging.addClickListener()`]() for more details. @@ -396,6 +393,6 @@ The Kotlin extensions library has no additional updates. # 17.0.0 -- [feature] The initial public beta release of the Firebase In-App Messaging - SDK for Android is now available. To learn more, see the [Firebase In-App - Messaging documentation](/docs/in-app-messaging). +- [feature] The initial public beta release of the Firebase In-App Messaging SDK + for Android is now available. To learn more, see the + [Firebase In-App Messaging documentation](/docs/in-app-messaging). diff --git a/firebase-installations/CHANGELOG.md b/firebase-installations/CHANGELOG.md index 2de31f23feb..3a67b880e5d 100644 --- a/firebase-installations/CHANGELOG.md +++ b/firebase-installations/CHANGELOG.md @@ -19,11 +19,11 @@ # 19.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 18.0.0 @@ -39,16 +39,16 @@ The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-installations-ktx` to `com.google.firebase:firebase-installations` under the - `com.google.firebase.installations` package. For details, see the [FAQ about - this initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.installations` 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-installations-ktx` have been added to `com.google.firebase:firebase-installations` under the `com.google.firebase.installations` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-installations-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) + details, see the + [FAQ about this initiative](https://firebase.google.com/docs/android/kotlin-migration) ## Kotlin @@ -67,5 +67,5 @@ The Kotlin extensions library has no additional updates. # 17.1.0 - [changed] Internal changes to ensure functionality alignment with other SDK - releases. For more details, refer to the [Firebase Instance ID v21.1.0 - release notes](/support/release-notes/android#iid_v21-1-0). + releases. For more details, refer to the + [Firebase Instance ID v21.1.0 release notes](/support/release-notes/android#iid_v21-1-0). diff --git a/firebase-messaging-directboot/CHANGELOG.md b/firebase-messaging-directboot/CHANGELOG.md index ebd236f688d..8c5d1a3aed8 100644 --- a/firebase-messaging-directboot/CHANGELOG.md +++ b/firebase-messaging-directboot/CHANGELOG.md @@ -19,7 +19,7 @@ # 25.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + higher. # 24.1.2 @@ -73,8 +73,8 @@ higher. # 23.0.8 -- [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). # 23.0.7 @@ -157,14 +157,14 @@ higher. # 20.2.4 - [changed] Internal changes to ensure functionality alignment with other SDK - releases. For more information, refer to the [Firebase Installations v16.3.3 - release notes](/support/release-notes/android#installations_v16-3-3). + releases. For more information, refer to the + [Firebase Installations v16.3.3 release notes](/support/release-notes/android#installations_v16-3-3). # 20.2.3 - [changed] Internal changes to ensure functionality alignment with other SDK - releases. For more details, see the [`firebase-messaging` v20.2.3 release - note](/support/release-notes/android#messaging_v20-2-3). + releases. For more details, see the + [`firebase-messaging` v20.2.3 release note](/support/release-notes/android#messaging_v20-2-3). # 20.2.2 @@ -179,13 +179,12 @@ issue was released on July 08, 2020 (see # 20.2.1 - [changed] Internal changes to ensure functionality alignment with other SDK - releases. For more information, refer to the [Firebase Instance ID v20.2.1 - release notes](/support/release-notes/android#iid_v20-2-1). + releases. For more information, refer to the + [Firebase Instance ID v20.2.1 release notes](/support/release-notes/android#iid_v20-2-1). # 20.2.0 - [feature] The Firebase Cloud Messaging Direct Boot SDK is now available and - supports receiving FCM messages in Direct Boot mode. See [Receive FCM - messages in direct boot - mode](/docs/cloud-messaging/android/receive#receive_fcm_messages_in_direct_boot_mode) + supports receiving FCM messages in Direct Boot mode. See + [Receive FCM messages in direct boot mode](/docs/cloud-messaging/android/receive#receive_fcm_messages_in_direct_boot_mode) for more information. diff --git a/firebase-messaging/CHANGELOG.md b/firebase-messaging/CHANGELOG.md index 46443cfbf18..38745aa9aab 100644 --- a/firebase-messaging/CHANGELOG.md +++ b/firebase-messaging/CHANGELOG.md @@ -24,11 +24,11 @@ # 25.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 24.1.2 @@ -94,8 +94,8 @@ Kotlin extensions library has no additional updates. # 24.0.0 - [changed] Switched Firelog to use the new TransportBackend. -- [changed] Log analytics for notifications displayed by Google Play services - on behalf of the app. +- [changed] Log analytics for notifications displayed by Google Play services on + behalf of the app. ## Kotlin @@ -113,16 +113,16 @@ Kotlin extensions library has no additional updates. # 23.4.0 -- [changed] Called messageHandled() after a message has been handled to - indicate that the message has been handled successfully. +- [changed] Called messageHandled() after a message has been handled to indicate + that the message has been handled successfully. - [changed] Added an internal identifier to Firelog logging for compliance. # 23.3.1 - [changed] Added metadata to FirebaseInstanceIdReceiver to signal that it finishes background broadcasts after the message has been handled. -- [changed] Specified notification's dismiss intent target via action instead - of component name. +- [changed] Specified notification's dismiss intent target via action instead of + component name. ## Kotlin @@ -134,15 +134,14 @@ Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-messaging-ktx` to `com.google.firebase:firebase-messaging` under the - `com.google.firebase.messaging` package. For details, see the [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.messaging` 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-messaging-ktx` have been added to `com.google.firebase:firebase-messaging` under the `com.google.firebase.messaging` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-messaging-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) + 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 @@ -170,8 +169,7 @@ Kotlin extensions library has no additional updates. # 23.1.2 - [fixed] Fixed a breakage related to Jetpack core library related to an - [upstream - update](https://android-review.googlesource.com/c/platform/frameworks/support/+/2399893). + [upstream update](https://android-review.googlesource.com/c/platform/frameworks/support/+/2399893). - [changed] Updated JavaLite, protoc, protobuf-java-util to 3.21.11. ## Kotlin @@ -198,18 +196,17 @@ Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-messaging` library. The Kotlin extensions library has the following additional updates: -- [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-messaging-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-messaging-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. # 23.0.8 -- [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 @@ -230,8 +227,7 @@ Kotlin extensions library has no additional updates. - [changed] Added the `POST_NOTIFICATIONS` permission to enable posting notifications when targeting SDK level 33. See [messaging] guidance on how to - [request runtime notification permission on Android - 13+](/docs/cloud-messaging/android/client#request-permission13) + [request runtime notification permission on Android 13+](/docs/cloud-messaging/android/client#request-permission13) - [fixed] Added an annotation to an internal class to fix a missing class warning. @@ -242,11 +238,10 @@ Kotlin extensions library has no additional updates. # 23.0.5 -- [fixed] Fixed a dependency on the `firebase-datatransport` layer. ([GitHub - #3716](https://github.com/firebase/firebase-android-sdk/issues/3716){: - .external}) -- [fixed] Upgraded logging priority for message delivery events to avoid - dropped logs. +- [fixed] Fixed a dependency on the `firebase-datatransport` layer. + ([GitHub #3716](https://github.com/firebase/firebase-android-sdk/issues/3716){: .external}) +- [fixed] Upgraded logging priority for message delivery events to avoid dropped + logs. ## Kotlin @@ -288,8 +283,8 @@ Kotlin extensions library has no additional updates. opened after `onActivityCreated` to avoid a race condition when unparceling the extras Bundle. - [fixed] Switched to stopping an image download by canceling a `Future` to - interrupt the download thread. This change avoids errors that can occur in - the image downloading library when trying to close the stream on a different + interrupt the download thread. This change avoids errors that can occur in the + image downloading library when trying to close the stream on a different thread than the one that started the download. - [fixed] Fixed reference documentation for [`RemoteMessage.getMessageId()`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage#public-string-getmessageid) @@ -302,16 +297,17 @@ Kotlin extensions library has no additional updates. # 23.0.0 -- [changed] Due to its [dependency on Google Play - services](/docs/android/android-play-services), this SDK now requires devices - and emulators to target API level 19 (KitKat) or higher and to use Android +- [changed] Due to its + [dependency on Google Play services](/docs/android/android-play-services), + this SDK now requires devices and emulators to target API level 19 (KitKat) or + higher and to use Android 4.4 or higher. - [feature] Added methods for determining and controlling whether Google Play services is set as the app’s notification delegate. By default, FCM will now set Google Play services as the app’s notification delegate so that it is - allowed to display notifications for the app. This could be used in the - future to show an app’s notifications without needing to start the app, which - may improve message reliability and timeliness. + allowed to display notifications for the app. This could be used in the future + to show an app’s notifications without needing to start the app, which may + improve message reliability and timeliness. ## Kotlin @@ -325,11 +321,11 @@ Kotlin extensions library has no additional updates. deprecated Firebase Instance ID API to manage registration tokens.**
We strongly recommend [migrating to [messaging]'s token APIs](/docs/projects/manage-installations#fid-iid). If you're unable to - migrate to the replacement APIs, add a direct dependency on the - `firebase-iid` library to your `build.gradle` file. -- [feature] Changed to open an `Activity` directly when a notification is - tapped instead of passing it through `FirebaseMessagingService`. This change - is to comply with Android 12 notification trampoline restrictions. + migrate to the replacement APIs, add a direct dependency on the `firebase-iid` + library to your `build.gradle` file. +- [feature] Changed to open an `Activity` directly when a notification is tapped + instead of passing it through `FirebaseMessagingService`. This change is to + comply with Android 12 notification trampoline restrictions. - [feature] Internal changes to use proto instead of JSON for logging. - [changed] Internal changes to support dynamic feature modules. - [changed] Internal infrastructure improvements. @@ -389,17 +385,16 @@ Kotlin extensions library has no additional updates. ## Kotlin -- [feature] The [messaging_longer] Android library with Kotlin extensions is - now available. The Kotlin extensions library transitively includes the base - `firebase-messaging` library. To learn more, visit the [[messaging_longer] - KTX +- [feature] The [messaging_longer] Android library with Kotlin extensions is now + available. The Kotlin extensions library transitively includes the base + `firebase-messaging` library. To learn more, visit the [[messaging_longer] KTX documentation](/docs/reference/kotlin/com/google/firebase/messaging/ktx/package-summary). # 20.2.4 - [changed] Internal changes to ensure functionality alignment with other SDK - releases. For more information, refer to the [Firebase Installations v16.3.3 - release notes](/support/release-notes/android#installations_v16-3-3). + releases. For more information, refer to the + [Firebase Installations v16.3.3 release notes](/support/release-notes/android#installations_v16-3-3). # 20.2.3 @@ -417,8 +412,8 @@ released on July 08, 2020 (see [v20.2.3](/support/release-notes/android#messagin # 20.2.1 - [changed] Internal changes to ensure functionality alignment with other SDK - releases. For more information, refer to the [Firebase Instance ID v20.2.1 - release notes](/support/release-notes/android#iid_v20-2-1). + releases. For more information, refer to the + [Firebase Instance ID v20.2.1 release notes](/support/release-notes/android#iid_v20-2-1). # 20.2.0 @@ -430,8 +425,8 @@ released on July 08, 2020 (see [v20.2.3](/support/release-notes/android#messagin # 20.1.7 - [changed] Internal changes to ensure functionality alignment with other SDK - releases (for more information, refer to the [Firebase Instance ID v20.1.7 - release notes](/support/release-notes/android#iid_v20-1-7)). + releases (for more information, refer to the + [Firebase Instance ID v20.1.7 release notes](/support/release-notes/android#iid_v20-1-7)). # 20.1.6 @@ -469,9 +464,8 @@ resources which can negatively impact the performance of a user's device. To avo impacts in the [v20.1.1 release notes](/support/release-notes/android#messaging_v20-1-1).** - [changed] Internal changes to ensure functionality alignment with other SDK - releases (for more information, refer to the bug fix in the [Firebase - Instance ID v20.1.1 release - notes](/support/release-notes/android#iid_v20-1-1)). + releases (for more information, refer to the bug fix in the + [Firebase Instance ID v20.1.1 release notes](/support/release-notes/android#iid_v20-1-1)). # 20.1.1 @@ -488,18 +482,19 @@ and should not be used. A fix for these issues was released on sure that push notifications still work as expected. Also, be aware of the following: - The [messaging] registration tokens of installed instances of your apps -might change once after updating dependencies to their latest versions. To -learn if your apps are affected, review the [firebase_installations] documentation. Also, make sure to -monitor -[messaging] registration token generation using the -#onNewToken implementation. + might change once after updating dependencies to their latest versions. To + learn if your apps are affected, review the [firebase_installations] documentation. Also, make sure + to monitor + [messaging] registration token generation using the + #onNewToken implementation. - Apps that use the Firebase auto-initialization process and the Gradle -plugin to convert `google-services.json` into resources are unaffected. -However, apps that create their own `FirebaseOptions` instances must provide a -valid API key, Firebase project ID, and application ID. + plugin to convert `google-services.json` into resources are unaffected. + However, apps that create their own `FirebaseOptions` instances must provide + a valid API key, Firebase project ID, and application ID. # 20.1.0 @@ -509,8 +504,8 @@ valid API key, Firebase project ID, and application ID. [`deliveryMetricsExportToBigQueryEnabled()`]() to control and query if messsage delivery metrics are exported to BigQuery. - [changed] Changed to catch and log NullPointerException when trying to close - the image download stream. This NPE can happen if the image download takes - too long and times out. + the image download stream. This NPE can happen if the image download takes too + long and times out. # 20.0.1 @@ -531,8 +526,8 @@ valid API key, Firebase project ID, and application ID. - [fixed] Fixed an issue where `FirebaseMessagingService.onNewToken` would be invoked for tokens created for non-default FirebaseApp instances. -- [fixed] SDK now only retries topic subscriptions and token registration on - the following errors: "ERROR_SERVICE_NOT_AVAILABLE" and +- [fixed] SDK now only retries topic subscriptions and token registration on the + following errors: "ERROR_SERVICE_NOT_AVAILABLE" and "ERROR_INTERNAL_SERVER_ERROR". # 18.0.0 @@ -541,8 +536,8 @@ valid API key, Firebase project ID, and application ID. # 17.6.0 -- [feature] Added functionality to automatically download and show an image in - a notification message. Retrieve the image URL set in the message with the +- [feature] Added functionality to automatically download and show an image in a + notification message. Retrieve the image URL set in the message with the `getImageUrl` method in [`RemoteMessage.Notification`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Notification). diff --git a/firebase-ml-modeldownloader/CHANGELOG.md b/firebase-ml-modeldownloader/CHANGELOG.md index 6d0ed48298d..5f998cb6daa 100644 --- a/firebase-ml-modeldownloader/CHANGELOG.md +++ b/firebase-ml-modeldownloader/CHANGELOG.md @@ -7,8 +7,9 @@ - [deprecated] Firebase ML is deprecated and will be shut down on June 15, 2027. To host custom models, you must migrate to another solution. You can -use Cloud Storage for Firebase as an alternative for hosting custom models. For -more info, see https://firebase.google.com/docs/ml/migrate-to-cloud-storage. + use Cloud Storage for Firebase as an alternative for hosting custom models. + For more info, see + https://firebase.google.com/docs/ml/migrate-to-cloud-storage. # 26.0.2 @@ -21,11 +22,11 @@ more info, see https://firebase.google.com/docs/ml/migrate-to-cloud-storage. # 26.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 25.0.1 @@ -81,18 +82,16 @@ library. The Kotlin extensions library has no additional updates. - [changed] Added Kotlin extensions (KTX) APIs from `com.google.firebase:firebase-ml-modeldownloader-ktx` to `com.google.firebase:firebase-ml-modeldownloader` under the - `com.google.firebase.ml.modeldownloader` package. For details, see the [FAQ - about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase.ml.modeldownloader` 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-ml-modeldownloader-ktx` have been added to `com.google.firebase:firebase-ml-modeldownloader` under the `com.google.firebase.ml.modeldownloader` package, and all the Kotlin - extensions (KTX) APIs in - `com.google.firebase:firebase-ml-modeldownloader-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) + extensions (KTX) APIs in `com.google.firebase:firebase-ml-modeldownloader-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 @@ -135,18 +134,17 @@ library. The Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-ml-modeldownloader` library. The Kotlin extensions library has the following additional updates: -- [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-ml-modeldownloader-ktx` as a transitive dependency, - which exposes the `Task.await()` suspend function to convert a +- [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-ml-modeldownloader-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.0.5 -- [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 @@ -179,8 +177,8 @@ library. The Kotlin extensions library has no additional updates. # 24.0.2 -- [fixed] Fixed an issue where `FirebaseModelDownloader.getInstance` would - crash when using non-default FirebaseApp instances. (#3321) +- [fixed] Fixed an issue where `FirebaseModelDownloader.getInstance` would crash + when using non-default FirebaseApp instances. (#3321) - [changed] Updated to the latest version of the `firebase-datatransport` library. @@ -211,8 +209,8 @@ library. The Kotlin extensions library has no additional updates. - [feature] The beta release of a [firebase_ml] Android library with Kotlin extensions is now available. The Kotlin extensions library transitively - includes the base `firebase-ml-model-downloader` library. To learn more, - visit the [[firebase_ml] KTX + includes the base `firebase-ml-model-downloader` library. To learn more, visit + the [[firebase_ml] KTX documentation](/docs/reference/android/com/google/firebase/ml/modeldownloader/package-summary). # 23.0.0 diff --git a/firebase-perf/CHANGELOG.md b/firebase-perf/CHANGELOG.md index 973d511ef39..ceb8abea341 100644 --- a/firebase-perf/CHANGELOG.md +++ b/firebase-perf/CHANGELOG.md @@ -37,11 +37,11 @@ # 22.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 21.0.5 @@ -120,17 +120,15 @@ Kotlin extensions library has no additional updates. # 20.5.0 - [changed] Added Kotlin extensions (KTX) APIs from - `com.google.firebase:firebase-perf-ktx` to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` - package. For details, see the [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase:firebase-perf-ktx` to `com.google.firebase:firebase-perf` + under the `com.google.firebase.perf` 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-perf-ktx` have been added to `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-perf-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) + 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) # 20.4.1 @@ -188,32 +186,31 @@ Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has the following additional updates: -- [feature] Added a [`trace(String, Trace.() -> - T)`]() +- [feature] Added a + [`trace(String, Trace.() -> T)`]() extension function to create a custom trace with the specified name. # 20.2.0 -- [unchanged] Updated to accommodate the release of the updated [perfmon] - Kotlin extensions library. +- [unchanged] Updated to accommodate the release of the updated [perfmon] Kotlin + extensions library. ## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has the following additional updates: -- [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-performance-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-performance-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. # 20.1.1 -- [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 @@ -223,9 +220,9 @@ Kotlin extensions library has no additional updates. # 20.1.0 - [feature] Added support for out-of-the-box measurement of screen performance - metrics for [Fragments](//developer.android.com/guide/fragments){: - .external}. For more details, visit [Learn about screen rendering performance - data](/docs/perf-mon/screen-traces?platform=android). + metrics for [Fragments](//developer.android.com/guide/fragments){: .external}. + For more details, visit + [Learn about screen rendering performance data](/docs/perf-mon/screen-traces?platform=android). - [fixed] Fixed a bug where screen traces were not capturing frame metrics for multi-Activity apps. - [fixed] Excluded custom attributes that have key/value lengths of 0. @@ -288,10 +285,10 @@ Kotlin extensions library has no additional updates. # 20.0.2 - [fixed] Fixed inaccurate calculation of screen activity metrics for - multi-activity apps. (#2672) Note: You may see some changes in data for - frozen frames and slow rendering metrics. -- [fixed] Fixed issue where screen traces were not being tracked for Android - API levels 23 and below. + multi-activity apps. (#2672) Note: You may see some changes in data for frozen + frames and slow rendering metrics. +- [fixed] Fixed issue where screen traces were not being tracked for Android API + levels 23 and below. ## Kotlin @@ -313,8 +310,8 @@ Kotlin extensions library has no additional updates. - [feature] Introduce Dagger as a dependency injection framework for some parts of the code. -- [changed] Improved the code organization of the SDK (package restructure, - code conventions, remove unncessary annotations). +- [changed] Improved the code organization of the SDK (package restructure, code + conventions, remove unncessary annotations). - [changed] Improve the launch time of the SDK. ## Kotlin @@ -324,9 +321,8 @@ Kotlin extensions library has no additional updates. # 19.1.1 -- [feature] The [firebase_perfmon] SDK is now [open - sourced](//github.com/firebase/firebase-android-sdk/tree/master/firebase-perf){: - .external}. +- [feature] The [firebase_perfmon] SDK is now + [open sourced](//github.com/firebase/firebase-android-sdk/tree/master/firebase-perf){: .external}. - [fixed] Fixed issue on the console logger to avoid throwing `UnknownFormatConversionException`. @@ -361,8 +357,8 @@ Kotlin extensions library has no additional updates. Note: We recommend using [perfmon] Gradle plugin v1.3.4+ with this version of the [perfmon] SDK and above. -- [changed] Integrated with the `firebase-datatransport` library for - performance log dispatch mechanism. +- [changed] Integrated with the `firebase-datatransport` library for performance + log dispatch mechanism. - [fixed] Synchronized the access to fix a race condition that was causing a `NullPointerException` when making network requests. (#2096) @@ -377,48 +373,45 @@ Kotlin extensions library has no additional updates. thread contention issue. (#1810) - [changed] Updated the protocol buffer dependency to the `protobuf-javalite` artifact to allow for backward compatibility. -- [changed] Removed Guava dependency from the SDK to avoid symbol collision - with any other SDKs. +- [changed] Removed Guava dependency from the SDK to avoid symbol collision with + any other SDKs. - [changed] Removed proguarding for SDK; logcat messages will show original class paths for debugging. - [changed] Improved build configurations and dependencies to reduce SDK size. ## Kotlin -- [feature] The [firebase_perfmon] Android library with Kotlin extensions is - now available. The Kotlin extensions library transitively includes the base +- [feature] The [firebase_perfmon] Android library with Kotlin extensions is now + available. The Kotlin extensions library transitively includes the base `firebase-performance` library. To learn more, visit the [[perfmon] KTX documentation](/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary). # 19.0.8 -- [changed] Updated the [logging - message](/docs/perf-mon/get-started-android#view-log-messages) for +- [changed] Updated the + [logging message](/docs/perf-mon/get-started-android#view-log-messages) for performance events. - [fixed] Silenced [firebase_remote_config] logging triggered by [firebase_perfmon]. (#403) -- [fixed] Removed unnecessary logging. [perfmon] now only logs debug - information if the `firebase_performance_logcat_enabled` setting is `true` in +- [fixed] Removed unnecessary logging. [perfmon] now only logs debug information + if the `firebase_performance_logcat_enabled` setting is `true` in `AndroidManifest.xml`. Visit the documentation for details about explicitly - [enabling debug - logging](/docs/perf-mon/get-started-android#view-log-messages). + [enabling debug logging](/docs/perf-mon/get-started-android#view-log-messages). - [changed] Migrated to use the [firebase_installations] service _directly_ - instead of using an indirect dependency via the Firebase Instance ID SDK. - -{% include -"docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" -%} + instead of using an indirect dependency via the Firebase Instance ID SDK. {% + include + "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" + %} # 19.0.7 - [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. - -This update to `firebase-iid` v20.1.5 fixed the following GitHub issues: -[#1454](//github.com/firebase/firebase-android-sdk/issues/1454), -[#1397](//github.com/firebase/firebase-android-sdk/issues/1397), and -[#1339](//github.com/firebase/firebase-android-sdk/issues/1339). + service in a future release. This update to `firebase-iid` v20.1.5 fixed the + following GitHub issues: + [#1454](//github.com/firebase/firebase-android-sdk/issues/1454), + [#1397](//github.com/firebase/firebase-android-sdk/issues/1397), and + [#1339](//github.com/firebase/firebase-android-sdk/issues/1339). # 19.0.6 @@ -457,8 +450,8 @@ This update to `firebase-iid` v20.1.5 fixed the following GitHub issues: # 18.0.1 -- [fixed] Fixed an `IllegalStateException` that was thrown when an activity - with hardware acceleration disabled was stopped. +- [fixed] Fixed an `IllegalStateException` that was thrown when an activity with + hardware acceleration disabled was stopped. # 17.0.2 diff --git a/firebase-sessions/CHANGELOG.md b/firebase-sessions/CHANGELOG.md index d4be1f423f3..be9e90ab053 100644 --- a/firebase-sessions/CHANGELOG.md +++ b/firebase-sessions/CHANGELOG.md @@ -31,8 +31,7 @@ - [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). + [release notes](https://developer.android.com/jetpack/androidx/releases/datastore#1.1.5). # 3.0.0 @@ -41,7 +40,7 @@ - [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. + higher. # 2.1.1 @@ -74,11 +73,11 @@ higher. # 2.0.4 - [fixed] Handled datastore writes when device has full internal memory more - gracefully. (GitHub - [#5859](https://github.com/firebase/firebase-android-sdk/issues/5859)) + gracefully. + (GitHub [#5859](https://github.com/firebase/firebase-android-sdk/issues/5859)) - [fixed] Safely unbind malfunctioning session lifecycle service to release - service connections. (GitHub - [#5869](https://github.com/firebase/firebase-android-sdk/issues/5869)) + service connections. + (GitHub [#5869](https://github.com/firebase/firebase-android-sdk/issues/5869)) # 1.2.3 diff --git a/firebase-storage/CHANGELOG.md b/firebase-storage/CHANGELOG.md index 5fe8d9c8844..e8973a3d6e0 100644 --- a/firebase-storage/CHANGELOG.md +++ b/firebase-storage/CHANGELOG.md @@ -7,11 +7,11 @@ # 22.0.0 - [changed] **Breaking Change**: Updated minSdkVersion to API level 23 or -higher. + 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). + 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). # 21.0.2 @@ -42,17 +42,15 @@ Kotlin extensions library has no additional updates. - [fixed] Fixed an issue where the wrong SDK version was being reported to the backend. - [changed] Added Kotlin extensions (KTX) APIs from - `com.google.firebase:firebase-perf-ktx` to - `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` - package. For details, see the [FAQ about this - initiative](https://firebase.google.com/docs/android/kotlin-migration) + `com.google.firebase:firebase-perf-ktx` to `com.google.firebase:firebase-perf` + under the `com.google.firebase.perf` 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-perf-ktx` have been added to `com.google.firebase:firebase-perf` under the `com.google.firebase.perf` package, and all the Kotlin extensions (KTX) APIs in `com.google.firebase:firebase-perf-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) + 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 @@ -62,8 +60,7 @@ Kotlin extensions library has no additional updates. # 20.2.1 - [changed] Migrated `firebase-storage` SDK to use standard Firebase executors. - (GitHub [#4830](//github.com/firebase/firebase-android-sdk/pull/4830){: - .external}) + (GitHub [#4830](//github.com/firebase/firebase-android-sdk/pull/4830){: .external}) ## Kotlin @@ -89,11 +86,10 @@ Kotlin extensions library has no additional updates. The Kotlin extensions library transitively includes the updated `firebase-storage` library. The Kotlin extensions library has the following additional updates: -- [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-storage-ktx` as a transitive dependency, which - exposes the `Task.await()` suspend function to convert a +- [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-storage-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. - [feature] Added @@ -102,8 +98,8 @@ Kotlin extensions library has the following additional updates: # 20.0.2 -- [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 @@ -194,9 +190,9 @@ Kotlin extensions library has no additional updates. ## Kotlin - [feature] The beta release of a [firebase_storage_full] Android library with - Kotlin extensions is now available. The Kotlin extensions library - transitively includes the base `firebase-storage` library. To learn more, - visit the [[firebase_storage_full] KTX + Kotlin extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-storage` library. To learn more, visit the + [[firebase_storage_full] KTX documentation](/docs/reference/kotlin/com/google/firebase/storage/ktx/package-summary). # 19.0.1 @@ -242,8 +238,7 @@ Kotlin extensions library has no additional updates. # 16.0.1 -- [feature] Added support for `onSuccessTask()` and `addOnCanceledListener()` - to +- [feature] Added support for `onSuccessTask()` and `addOnCanceledListener()` to [`StorageTask`](/docs/reference/android/com/google/firebase/storage/StorageTask), [`UploadTask`](/docs/reference/android/com/google/firebase/storage/UploadTask), [`StreamDownloadTask`](/docs/reference/android/com/google/firebase/storage/StreamDownloadTask), diff --git a/firebase-vertexai/CHANGELOG.md b/firebase-vertexai/CHANGELOG.md index 13e68e7fc80..3be8d90863e 100644 --- a/firebase-vertexai/CHANGELOG.md +++ b/firebase-vertexai/CHANGELOG.md @@ -1,24 +1,21 @@ # 16.5.0 - [changed] **Renamed / Replaced:** Vertex AI in Firebase (`firebase-vertexai`) -has been renamed and replaced by the new Firebase AI SDK: `firebase-ai`. This -is to accommodate the evolving set of supported features and services. Please -[**migrate to the new `firebase-ai` -package**](/docs/vertex-ai/migrate-to-latest-sdk). - -Note: Existing users of the Vertex AI in Firebase SDK (`firebase-vertexai`) may -continue to use the SDK and receive bug fixes but, going forward, new features -will only be added into the new Firebase AI SDK. - -The following changes and features are in the Vertex AI in Firebase SDK -(`firebase-vertexai`), but we recommend that you accommodate them (as -applicable) as part of migrating to the `firebase-ai` SDK. + has been renamed and replaced by the new Firebase AI SDK: `firebase-ai`. This + is to accommodate the evolving set of supported features and services. Please + [**migrate to the new `firebase-ai` package**](/docs/vertex-ai/migrate-to-latest-sdk). + Note: Existing users of the Vertex AI in Firebase SDK (`firebase-vertexai`) + may continue to use the SDK and receive bug fixes but, going forward, new + features will only be added into the new Firebase AI SDK. The following + changes and features are in the Vertex AI in Firebase SDK + (`firebase-vertexai`), but we recommend that you accommodate them (as + applicable) as part of migrating to the `firebase-ai` SDK. - [changed] **Breaking Change**: Removed the `LiveContentResponse.Status` -class, and instead have nested the status fields as properties of -`LiveContentResponse`. (#6941) + class, and instead have nested the status fields as properties of + `LiveContentResponse`. (#6941) - [changed] **Breaking Change**: Removed the `LiveContentResponse` class, and -instead have provided subclasses of `LiveServerMessage` that match the -responses from the model. (#6941) + instead have provided subclasses of `LiveServerMessage` that match the + responses from the model. (#6941) - [feature] Added support for the `id` field on `FunctionResponsePart` and `FunctionCallPart`. (#6941) - [feature] Added a helper field for getting all the `InlineDataPart` from a @@ -27,27 +24,27 @@ responses from the model. (#6941) # 16.4.0 - [changed] **Breaking Change**: `LiveModelFutures.connect` now returns -`ListenableFuture` instead of -`ListenableFuture`. + `ListenableFuture` instead of + `ListenableFuture`. - **Action Required:** Remove any transformations from LiveSession object to -LiveSessionFutures object. + LiveSessionFutures object. - **Action Required:** Change type of variable handling -`LiveModelFutures.connect` to `ListenableFuture` + `LiveModelFutures.connect` to `ListenableFuture` - [changed] **Breaking Change**: Removed `UNSPECIFIED` value for enum class -`ResponseModality` + `ResponseModality` - **Action Required:** Remove all references to `ResponseModality.UNSPECIFIED` - [changed] **Breaking Change**: Renamed -`LiveGenerationConfig.setResponseModalities` to -`LiveGenerationConfig.setResponseModality` + `LiveGenerationConfig.setResponseModalities` to + `LiveGenerationConfig.setResponseModality` - **Action Required:** Replace all references of -`LiveGenerationConfig.setResponseModalities` with -`LiveGenerationConfig.setResponseModality` -- [feature] Added support for `HarmBlockThreshold.OFF`. See the [model - documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#how_to_configure_content_filters){: - .external} for more information. + `LiveGenerationConfig.setResponseModalities` with + `LiveGenerationConfig.setResponseModality` +- [feature] Added support for `HarmBlockThreshold.OFF`. See the + [model documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#how_to_configure_content_filters){: .external} + for more information. - [fixed] Improved thread usage when using a `LiveGenerativeModel`. (#6870) -- [fixed] Fixed an issue with `LiveContentResponse` audio data not being - present when the model was interrupted or the turn completed. (#6870) +- [fixed] Fixed an issue with `LiveContentResponse` audio data not being present + when the model was interrupted or the turn completed. (#6870) - [fixed] Fixed an issue with `LiveSession` not converting exceptions to `FirebaseVertexAIException`. (#6870) - [feature] Enable response generation in multiple modalities. (#6901) @@ -61,21 +58,21 @@ LiveSessionFutures object. - [changed] Added new exception type for quota exceeded scenarios. - [feature] `CountTokenRequest` now includes `GenerationConfig` from the model. - [feature] **Public Preview:** Added support for streaming input and output -(including audio) using the [Gemini Live -API](/docs/vertex-ai/live-api?platform=android) **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. + (including audio) using the + [Gemini Live API](/docs/vertex-ai/live-api?platform=android) **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. - [changed] **Breaking Change**: `ImagenInlineImage.data` now returns the raw -image bytes (in JPEG or PNG format, as specified in -`ImagenInlineImage.mimeType`) instead of Base64-encoded data. (#6800) + image bytes (in JPEG or PNG format, as specified in + `ImagenInlineImage.mimeType`) instead of Base64-encoded data. (#6800) - **Action Required:** Remove any Base64 decoding from your -`ImagenInlineImage.data` usage. + `ImagenInlineImage.data` usage. - The `asBitmap()` helper method is unaffected and requires no code changes. # 16.2.0 -- [fixed] Added support for new values sent by the server for `FinishReason` - and `BlockReason`. +- [fixed] Added support for new values sent by the server for `FinishReason` and + `BlockReason`. - [changed] Added support for modality-based token count. (#6658) - [feature] Added support for generating images with Imagen models. @@ -86,12 +83,12 @@ image bytes (in JPEG or PNG format, as specified in # 16.0.2 - [fixed] Improved error message when using an invalid location. (#6428) -- [fixed] Fixed issue where Firebase App Check error tokens were - unintentionally missing from the requests. (#6409) +- [fixed] Fixed issue where Firebase App Check error tokens were unintentionally + missing from the requests. (#6409) - [fixed] Clarified in the documentation that `Schema.integer` and `Schema.float` only provide hints to the model. (#6420) -- [fixed] Fixed issue were `Schema.double` set the format parameter in - `Schema`. (#6432) +- [fixed] Fixed issue were `Schema.double` set the format parameter in `Schema`. + (#6432) # 16.0.1 @@ -101,61 +98,60 @@ image bytes (in JPEG or PNG format, as specified in # 16.0.0 - [feature] {{firebase_vertexai}} is now Generally Available (GA) and can be - used in production apps. - -Use the {{firebase_vertexai_sdk}} to call the {{gemini_api_vertexai_long}} -directly from your app. This client SDK is built specifically for use with -Android apps, offering security options against unauthorized clients as well as -integrations with other Firebase services. + used in production apps. Use the {{firebase_vertexai_sdk}} to call the + {{gemini_api_vertexai_long}} directly from your app. This client SDK is built + specifically for use with Android apps, offering security options against + unauthorized clients as well as integrations with other Firebase services. - If you're new to this library, visit the -[getting started guide](/docs/vertex-ai/get-started?platform=android). + [getting started guide](/docs/vertex-ai/get-started?platform=android). - If you were using the preview version of the library, visit the -[migration guide](/docs/vertex-ai/migrate-to-ga?platform=android) to learn -about some important updates. + [migration guide](/docs/vertex-ai/migrate-to-ga?platform=android) to learn + about some important updates. - [changed] **Breaking Change**: Changed `functionCallingConfig` parameter type -to be nullable in `ToolConfig`. (#6373) -- [changed] **Breaking Change**: Removed `functionResponse` accessor method from -`GenerateContentResponse`. (#6373) + to be nullable in `ToolConfig`. (#6373) +- [changed] **Breaking Change**: Removed `functionResponse` accessor method + from `GenerateContentResponse`. (#6373) - [changed] **Breaking Change**: Migrated `FirebaseVertexAIException` from a -sealed class to an abstract class, and marked constructors as internal. (#6368) + sealed class to an abstract class, and marked constructors as internal. + (#6368) - [feature] Added support for `title` and `publicationDate` in citations. (#6309) - [feature] Added support for `frequencyPenalty`, `presencePenalty`, and `HarmBlockMethod`. (#6309) - [changed] **Breaking Change**: Introduced `Citations` class. Now -`CitationMetadata` wraps that type. (#6276) + `CitationMetadata` wraps that type. (#6276) - [changed] **Breaking Change**: Reworked `Schema` declaration mechanism. -(#6258) + (#6258) - [changed] **Breaking Change**: Reworked function calling mechanism to use the -new `Schema` format. Function calls no longer use native types, nor include -references to the actual executable code. (#6258) + new `Schema` format. Function calls no longer use native types, nor include + references to the actual executable code. (#6258) - [changed] **Breaking Change**: Made `totalBillableCharacters` field in -`CountTokens` nullable and optional. (#6294) + `CountTokens` nullable and optional. (#6294) - [changed] **Breaking Change**: Removed `UNKNOWN` option for the -`HarmBlockThreshold` enum. (#6294) + `HarmBlockThreshold` enum. (#6294) - [changed] **Breaking Change**: Removed `UNSPECIFIED` option for the -`HarmBlockThreshold`, `HarmProbability`, `HarmSeverity`, and `BlockReason` -enums. (#6294) + `HarmBlockThreshold`, `HarmProbability`, `HarmSeverity`, and `BlockReason` + enums. (#6294) - [changed] **Breaking Change**: Renamed `BlockThreshold` as -`HarmBlockThreshold`. (#6262) + `HarmBlockThreshold`. (#6262) - [changed] **Breaking Change**: Renamed all types and methods starting with -`blob` to start with `inlineData`. (#6309) + `blob` to start with `inlineData`. (#6309) - [changed] **Breaking Change**: Changed the order of arguments in -`InlineDataPart` to match `ImagePart`. (#6340) + `InlineDataPart` to match `ImagePart`. (#6340) - [changed] **Breaking Change**: Changed `RequestOption` to accept only `long` -timeout values. (#6289) + timeout values. (#6289) - [changed] **Breaking Change**: Moved `requestOptions` to the last positional -argument in the `generativeModel` argument list. (#6292) + argument in the `generativeModel` argument list. (#6292) - [changed] **Breaking Change**: Replaced sealed classes with abstract classes -for `StringFormat`. (#6334) + for `StringFormat`. (#6334) - [changed] **Breaking Change**: Refactored enum classes to be normal classes. -(#6340) + (#6340) - [changed] **Breaking Change**: Marked `GenerativeModel` properties as -private. (#6309) + private. (#6309) - [changed] **Breaking Change**: Changed `method` parameter type to be nullable -in `SafetySettings`. (#6379) + in `SafetySettings`. (#6379) # 16.0.0-beta05 diff --git a/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt b/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt index 8a8f5974260..07cab83b3f4 100644 --- a/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt +++ b/plugins/src/main/java/com/google/firebase/gradle/plugins/ChangelogFormatter.kt @@ -1,47 +1,129 @@ +/* + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.firebase.gradle.plugins +/** + * A utility class responsible for formatting markdown CHANGELOG.md files to adhere to our standard layout rules. + * + * This ensures that: + * 1. All text wraps at exactly 80 characters per line. + * 2. Markdown links, inline code snippets, and GitHub issue attribution tags are treated as unbreakable blocks + * and will not be split mid-word across multiple lines. + * 3. GitHub issue attribution tags are forced onto their own line for easier review. + * 4. Multi-line code blocks are preserved identically and bypass wrapping. + * 5. Nested lists retain their relative indentation. + */ object ChangelogFormatter { + /** + * Wraps the provided text to a specified [maxWidth] using the specified [indent] for continuation lines. + * + * To prevent certain markdown structures (like links or code blocks) from being shattered across the 80-character + * limit, this method replaces spaces inside these protected segments with a null character (`\u0000`). + * By doing this, the wrap algorithm treats the entire segment as a single, indivisible word. After determining + * the layout, the null characters are reverted back to standard spaces. + */ private fun wrapText(text: String, maxWidth: Int, indent: String): List { - val words = text.split(Regex("(?<=\\s)")) - val lines = mutableListOf() - var currentLine = StringBuilder() - - for (word in words) { - if (currentLine.length + word.length > maxWidth) { - if (currentLine.isNotEmpty()) { - lines.add(currentLine.toString().trimEnd()) - currentLine = StringBuilder(indent) + val hardLines = text.split("\n") + val finalLines = mutableListOf() + + for (hardLine in hardLines) { + // Encode spaces inside markdown links so they aren't split across lines + var encodedText = Regex("\\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?").replace(hardLine) { matchResult -> + matchResult.value.replace(" ", "\u0000") + } + // Encode spaces inside GitHub issue tags so they aren't split across lines + encodedText = Regex("\\(GitHub \\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?\\)").replace(encodedText) { matchResult -> + matchResult.value.replace(" ", "\u0000") + } + // Encode spaces inside inline code so they aren't split across lines + encodedText = Regex("`[^`]+`").replace(encodedText) { matchResult -> + matchResult.value.replace(" ", "\u0000") + } + + val words = encodedText.split(Regex("(?<=\\s)")) + var currentLine = StringBuilder() + + for (word in words) { + val wordText = word.replace("\u0000", " ") + // We strip trailing spaces to ensure they don't artificially trigger a line break + val wordLengthWithoutTrailingSpace = wordText.trimEnd().length + val currentLength = currentLine.toString().replace("\u0000", " ").length + + if (currentLength + wordLengthWithoutTrailingSpace > maxWidth) { + if (currentLine.toString().trim().isNotEmpty()) { + finalLines.add(currentLine.toString().replace("\u0000", " ").trimEnd()) + currentLine = StringBuilder(indent) + } } + currentLine.append(word) + } + if (currentLine.isNotEmpty()) { + finalLines.add(currentLine.toString().replace("\u0000", " ").trimEnd()) } - currentLine.append(word) - } - if (currentLine.isNotEmpty()) { - lines.add(currentLine.toString().trimEnd()) } - return lines + return finalLines } + /** + * Processes a single [Change] by first unwrapping its lines into logical blocks, and then + * systematically re-wrapping them according to our layout rules. + * + * This handles preserving indentation for nested lists, skipping wrapper logic for multi-line + * code blocks, and extracting GitHub tags onto their own line. + */ private fun wrapChange(change: Change): String { val lines = change.message.split("\n") val unwrapped = mutableListOf() + var inCodeBlock = false + + // Phase 1: Unwrap the message into single, contiguous logical lines while preserving structures for (line in lines) { - val trimmed = line.trim() - if (trimmed.isEmpty()) { + if (line.trimStart().startsWith("```")) { + inCodeBlock = !inCodeBlock + } + + val trimmed = line.trimStart() + val isListItem = trimmed.startsWith("-") || trimmed.startsWith("*") || trimmed.matches(Regex("^\\d+\\..*")) + + if (inCodeBlock || line.trimStart().startsWith("```")) { + // Leave code block lines entirely alone + unwrapped.add(line.trimEnd()) + } else if (line.trim().isEmpty()) { unwrapped.add("") - } else if (trimmed.startsWith("-") || trimmed.startsWith("*") || trimmed.matches(Regex("^\\d+\\..*"))) { - unwrapped.add(line) + } else if (isListItem) { + // Start a new logical line for list items + unwrapped.add(line.trimEnd()) } else { if (unwrapped.isEmpty()) { - unwrapped.add(trimmed) + unwrapped.add(trimmed.trimEnd()) } else { val last = unwrapped.removeLast() - if (last.isEmpty() || last.trimStart().startsWith("-") || last.trimStart().startsWith("*") || last.trimStart().matches(Regex("^\\d+\\..*"))) { + val lastTrimmed = last.trimStart() + val lastIsListItem = lastTrimmed.startsWith("-") || lastTrimmed.startsWith("*") || lastTrimmed.matches(Regex("^\\d+\\..*")) + + if (last.isEmpty() || lastIsListItem || last.trimStart().startsWith("```")) { + // If the previous line was a boundary, don't merge into it unwrapped.add(last) - unwrapped.add(trimmed) + unwrapped.add(line.trimEnd()) } else { - unwrapped.add("$last $trimmed") + // Merge the line into the previous contiguous text block + unwrapped.add("$last ${trimmed.trimEnd()}") } } } @@ -49,25 +131,57 @@ object ChangelogFormatter { val wrappedLines = mutableListOf() var firstLine = true + var inCodeBlock2 = false + // Phase 2: Re-wrap the contiguous logical lines into 80-character bounds for (unwrappedLine in unwrapped) { + if (unwrappedLine.trimStart().startsWith("```")) { + inCodeBlock2 = !inCodeBlock2 + wrappedLines.add(unwrappedLine) + firstLine = false + continue + } + + if (inCodeBlock2) { + // Bypass wrapping inside code blocks + wrappedLines.add(unwrappedLine) + firstLine = false + continue + } + if (firstLine) { + // The first line of a change receives the change type prefix (e.g. "- [changed] ") val prefix = "- [${change.type.toString().lowercase()}] " val maxWidth = 80 - val wrapped = wrapText("$prefix$unwrappedLine", maxWidth, " ") + + var textToWrap = unwrappedLine.trimStart() + // Extract GitHub tags onto a new line with the base indentation + textToWrap = textToWrap.replace( + Regex("\\s*(\\(GitHub \\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?\\))"), + "\n $1" + ) + val wrapped = wrapText("$prefix$textToWrap", maxWidth, " ") wrappedLines.addAll(wrapped) firstLine = false } else { - if (unwrappedLine.isEmpty()) { + if (unwrappedLine.trim().isEmpty()) { wrappedLines.add("") } else { + // Identify the current list indentation so we can correctly align wrapped text val indentMatch = Regex("^\\s*").find(unwrappedLine) val indent = indentMatch?.value ?: "" val isListItem = unwrappedLine.trimStart().startsWith("-") || unwrappedLine.trimStart().startsWith("*") || unwrappedLine.trimStart().matches(Regex("^\\d+\\..*")) val baseIndent = if (isListItem) indent + " " else indent - val wrapped = wrapText(unwrappedLine, 80, baseIndent) + var textToWrap = unwrappedLine + // Extract GitHub tags onto a new line with the specific nested indentation + textToWrap = textToWrap.replace( + Regex("\\s*(\\(GitHub \\[[^\\]]+\\]\\([^)]+\\)(?:\\{[^}]+\\})?\\))"), + "\n$baseIndent$1" + ) + + val wrapped = wrapText(textToWrap, 80, baseIndent) wrappedLines.addAll(wrapped) } } @@ -75,6 +189,9 @@ object ChangelogFormatter { return wrappedLines.joinToString("\n") } + /** + * Combines the subtext and formatted changes into a unified block for a single [ReleaseContent]. + */ private fun formatContent(content: ReleaseContent): String { val changesStr = content.changes.joinToString("\n") { wrapChange(it) } return when { @@ -85,6 +202,11 @@ object ChangelogFormatter { } } + /** + * Main entrypoint for formatting a raw CHANGELOG file's string contents. + * + * Reconstructs the file ensuring a single blank line between the header, entries, and EOF. + */ fun format(content: String): String { val header = content.split(Regex("^#\\s", RegexOption.MULTILINE)).first() val changelog = Changelog.fromString(content)