diff --git a/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md new file mode 100644 index 00000000000..e9a4b2de744 --- /dev/null +++ b/appcheck/firebase-appcheck-debug-testing/CHANGELOG.md @@ -0,0 +1,41 @@ +# Unreleased + +# 16.1.0 +* [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). + +# 16.0.0 +* [changed] [app_check] has exited beta and is now generally available for + use. + +# 16.0.0-beta06 +* [fixed] Fixed a bug in the [app_check] token refresh flow when using a + custom provider. + +# 16.0.0-beta05 +* [changed] Internal improvements. + +# 16.0.0-beta04 +* [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. + +# 16.0.0-beta02 +* [feature] Added [`getAppCheckToken()`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)), + [`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. + +# 16.0.0-beta01 +* [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 new file mode 100644 index 00000000000..b23c1898f40 --- /dev/null +++ b/appcheck/firebase-appcheck-debug/CHANGELOG.md @@ -0,0 +1,41 @@ +# Unreleased + +# 16.1.0 +* [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). + +# 16.0.0 +* [changed] [app_check] has exited beta and is now generally available for + use. + +# 16.0.0-beta06 +* [fixed] Fixed a bug in the [app_check] token refresh flow when using a + custom provider. + +# 16.0.0-beta05 +* [changed] Internal improvements. + +# 16.0.0-beta04 +* [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. + +# 16.0.0-beta02 +* [feature] Added [`getAppCheckToken()`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)), + [`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. + +# 16.0.0-beta01 +* [feature] Initial beta release of the [app_check] Debug SDK with abuse + reduction features. + diff --git a/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md new file mode 100644 index 00000000000..bdea5a89161 --- /dev/null +++ b/appcheck/firebase-appcheck-playintegrity/CHANGELOG.md @@ -0,0 +1,15 @@ +# Unreleased + +# 16.1.0 +* [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). + +# 16.0.0 +* [feature] Added support for + [Play Integrity](https://developer.android.com/google/play/integrity) as an + attestation provider. + diff --git a/appcheck/firebase-appcheck-safetynet/CHANGELOG.md b/appcheck/firebase-appcheck-safetynet/CHANGELOG.md new file mode 100644 index 00000000000..39e56b1e276 --- /dev/null +++ b/appcheck/firebase-appcheck-safetynet/CHANGELOG.md @@ -0,0 +1,41 @@ +# Unreleased + +# 16.1.0 +* [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). + +# 16.0.0 +* [changed] [app_check] has exited beta and is now generally available for + use. + +# 16.0.0-beta06 +* [fixed] Fixed a bug in the [app_check] token refresh flow when using a + custom provider. + +# 16.0.0-beta05 +* [changed] Internal improvements. + +# 16.0.0-beta04 +* [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. + +# 16.0.0-beta02 +* [feature] Added [`getAppCheckToken()`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)), + [`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. + +# 16.0.0-beta01 +* [feature] Initial beta release of the [app_check] SafetyNet SDK with abuse + reduction features. + diff --git a/appcheck/firebase-appcheck/CHANGELOG.md b/appcheck/firebase-appcheck/CHANGELOG.md new file mode 100644 index 00000000000..e66859e9abe --- /dev/null +++ b/appcheck/firebase-appcheck/CHANGELOG.md @@ -0,0 +1,59 @@ +# Unreleased + +# 16.1.0 +* [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 + [`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). + +# 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. + +# 16.0.0-beta06 +* [fixed] Fixed a bug in the [app_check] token refresh flow when using a + custom provider. + +# 16.0.0-beta05 +* [changed] Internal improvements. + +# 16.0.0-beta04 +* [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. + +# 16.0.0-beta02 +* [feature] Added [`getAppCheckToken()`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getAppCheckToken(boolean)), + [`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. + +# 16.0.0-beta01 +* [feature] Initial beta release of the [app_check] SDK with abuse reduction + features. + diff --git a/firebase-abt/CHANGELOG.md b/firebase-abt/CHANGELOG.md new file mode 100644 index 00000000000..931ae65ff4d --- /dev/null +++ b/firebase-abt/CHANGELOG.md @@ -0,0 +1,38 @@ +# Unreleased + +# 21.1.0 +* [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). + +# 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. + +# 21.0.0 +* [changed] Internal infrastructure improvements. +* [changed] Internal changes to support dynamic feature modules. + +# 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. + +# 19.0.1 +- [changed] Internal changes to ensure functionality alignment with other SDK releases. + +# 17.1.1 +* [changed] Updated API to support the latest [remote_config] update. + +* [changed] Updated minSdkVersion to API level 16. + +# 17.1.0 +* [changed] Updated API to support the latest [remote_config] update. + diff --git a/firebase-appdistribution-api/CHANGELOG.md b/firebase-appdistribution-api/CHANGELOG.md index 79e701b844d..26e49b1c933 100644 --- a/firebase-appdistribution-api/CHANGELOG.md +++ b/firebase-appdistribution-api/CHANGELOG.md @@ -1 +1,56 @@ # Unreleased + +# 16.0.0-beta05 +* [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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-appdistribution-api` 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` - 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. + + +## Kotlin +With the removal of the Kotlin extensions library +`firebase-appdistribution-ktx`, its functionality 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 41217f8995c..de63b825eac 100644 --- a/firebase-appdistribution/CHANGELOG.md +++ b/firebase-appdistribution/CHANGELOG.md @@ -1,17 +1,57 @@ # Unreleased -# Released +# 16.0.0-beta05 +* [unchanged] Updated to accommodate the release of the updated + [appdistro] Kotlin extensions library. -## v20.0.6 (M112) +# 16.0.0-beta03 +* [feature] The [appdistro] SDK has been split into two libraries: -#### Android library -* {{feature}} The Firebase App Distribution Android SDK is now available in beta. You + * `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. + + 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`. + +# 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. + +* [changed] Internal improvements to tests. + + +## Kotlin +The Kotlin extensions library transitively includes the base +`firebase-app-distribution` library. 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 - [reference documentation](https://firebase.google.com/docs/reference/android/com/google/firebase/appdistribution/package-summary). + [[appdistro] reference documentation](/docs/reference/android/com/google/firebase/appdistribution/package-summary). + -#### Kotlin extensions -The Android library with Kotlin extensions is now available in +## Kotlin +The [appdistro] Android library with Kotlin extensions is now available in beta. The Kotlin extensions library transitively includes the base `firebase-app-distribution` library. To learn more, visit the -[KTX reference documentation](https://firebase.google.com/docs/reference/kotlin/com/google/firebase/appdistribution/ktx/package-summary). +[[appdistro] KTX reference documentation](/docs/reference/kotlin/com/google/firebase/appdistribution/ktx/package-summary). + diff --git a/firebase-config/CHANGELOG.md b/firebase-config/CHANGELOG.md new file mode 100644 index 00000000000..55b6f7f666f --- /dev/null +++ b/firebase-config/CHANGELOG.md @@ -0,0 +1,370 @@ +# Unreleased + +# 21.2.0 +* [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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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 +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 21.1.0 + + +* [changed] Added first-open time to [remote_config] server requests. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 21.0.0 +* [changed] Internal infrastructure improvements. +* [changed] Internal changes to support dynamic feature modules. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 20.0.4 +* [changed] Improved condition targeting signals. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 20.0.3 +* [changed] Standardize support for other Firebase products that integrate + with [remote_config]. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 20.0.1 +* [changed] Added support for other Firebase products to integrate with + [remote_config]. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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 + [`FirebaseRemoteConfig.activate()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activate()) + instead. + +* [removed] Removed the deprecated synchronous methods + `FirebaseRemoteConfig.setDefaults(int)` and + `FirebaseRemoteConfig.setDefaults(Map)`. Use the asynchronous + [`FirebaseRemoteConfig.setDefaultsAsync(int)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)) + and [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(Map)) + instead. + +* [removed] Removed the deprecated synchronous method + `FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)`. + Use the asynchronous + [`FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettingsAsync(FirebaseRemoteConfigSettings)) + instead. + +* [removed] Removed the deprecated method + `FirebaseRemoteConfig.getByteArray(String)`. Use + [`FirebaseRemoteConfig.getString(String)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#getString(String)) + instead. + +* [removed] Removed the deprecated methods + `FirebaseRemoteConfigSettings.isDeveloperModeEnabled()` and + `FirebaseRemoteConfigSettings.Builder.setDeveloperModeEnabled(boolean)`. Use + [`FirebaseRemoteConfigSettings#getMinimumFetchIntervalInSeconds()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings#getMinimumFetchIntervalInSeconds()) + and [`FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)) + instead. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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] Updated the protocol buffer dependency to the newer + `protobuf-javalite` artifact. The new artifact is incompatible with the old + one, so this library needed to be upgraded to avoid conflicts. No developer + action is necessary. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 19.1.3 +* [fixed] Fixed an issue where [`FirebaseRemoteConfig.fetch()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig.html#fetch()) +would sometimes report a misformatted language tag. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 19.1.2 +* [fixed] Resolved known issue where + [`FirebaseRemoteConfigSettings.Builder.setFetchTimeoutInSeconds()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder) + was not always honored. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 19.1.1 +* [changed] Updated [`FirebaseRemoteConfig.fetch()`](docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig.html#fetch()) +implementation to use [`FirebaseInstanceId.getInstanceId()`](/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId.html#getInstanceId()) +in favor of the deprecated [`FirebaseInstanceId.getToken()`](/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId.html#getToken()). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 19.1.0 +* [changed] Added getters to the fields of the + [`FirebaseRemoteConfigSettings.Builder`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder) + object to provide better Kotlin patterns. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The 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 issue where setting Byte Arrays via + [`FirebaseRemoteConfig.setDefaultsAsync(int)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)), + [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](/docs/reference/android/com/google/firebase/remoteconfig/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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-config` library. The Kotlin extensions library has no additional +updates. + +# 19.0.2 +* [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). + +# 19.0.1 +* [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. + +# 17.0.0 +* [feature] Added an asynchronous way to set config settings: [`FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettingsAsync(FirebaseRemoteConfigSettings)). + +* [feature] Added [`FirebaseRemoteConfigServerException`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigServerException) 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". + +* [deprecated] Deprecated developer mode. Use [`FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(0L)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)) instead. + +* [deprecated] Deprecated the synchronous [`FirebaseRemoteConfig.setConfigSettings(FirebaseRemoteConfigSettings)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettings(FirebaseRemoteConfigSettings)). Use the asynchronous [`FirebaseRemoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setConfigSettingsAsync(FirebaseRemoteConfigSettings)) instead. + +* [deprecated] Deprecated [`FirebaseRemoteConfigFetchException`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigFetchException). Use the more granular [`FirebaseRemoteConfigServerException`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigServerException) and [`FirebaseRemoteConfigClientException`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigClientException) instead. + +* [removed] Removed all namespace methods. + +* [removed] Removed all default constructors for Exception classes. + +* [changed] Updated minSdkVersion to API level 16. + +# 16.5.0 +* [feature] Enabled multi-App support. Use [`FirebaseRemoteConfig.getInstance(FirebaseApp)`](/docs/reference/android/com/google/firebase/remoteconfig/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). + +* [feature] Added a method that fetches configs and activates them: [`FirebaseRemoteConfig.fetchAndActivate()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#fetchAndActivate()). + +* [feature] Network connection timeout for fetch requests is now customizable. To set the network timeout, use [`FirebaseRemoteConfigSettings.Builder.setFetchTimeoutInSeconds(long)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setFetchTimeoutInSeconds(long)). + +* [feature] The default minimum fetch interval is now customizable. To set the default minimum fetch interval, use [`FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)). + +* [feature] Added a way to get all activated configs as a Java `Map`: [`FirebaseRemoteConfig.getAll()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#getAll()). + +* [feature] Added the ability to reset a Firebase Remote Config instance: [`FirebaseRemoteConfig.reset()`](/docs/reference/android/com/google/firebase/remoteconfig/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 [`FirebaseRemoteConfig.ensureInitialized()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#ensureInitialized()). + +* [feature] Added an asynchronous way to activate configs: [`FirebaseRemoteConfig.activate()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activate()). + +* [feature] Added an asynchronous way to set defaults: [`FirebaseRemoteConfig.setDefaultsAsync(int)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)) and [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(Map)). + +* [deprecated] Deprecated the synchronous [`FirebaseRemoteConfig.activateFetched()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activateFetched()). Use the asynchronous [`FirebaseRemoteConfig.activate()`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#activate()) instead. + +* [deprecated] Deprecated the synchronous [`FirebaseRemoteConfig.setDefaults(int)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaults(int)) and [`FirebaseRemoteConfig.setDefaults(Map)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefalts(Map)). Use the asynchronous [`FirebaseRemoteConfig.setDefaultsAsync(int)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(int)) and [`FirebaseRemoteConfig.setDefaultsAsync(Map)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#setDefaultsAsync(Map)) instead. + +* [deprecated] Deprecated [`FirebaseRemoteConfig.getByteArray(String)`](/docs/reference/android/com/google/firebase/remoteconfig/FirebaseRemoteConfig#getByteArray(String)). + +* [deprecated] Deprecated all methods with a namespace parameter. + +# 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. + +# 16.4.0 +* [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] 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`. + +# 16.1.3 +* [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. + diff --git a/firebase-crashlytics-ndk/CHANGELOG.md b/firebase-crashlytics-ndk/CHANGELOG.md index 99fdcf856fd..63ac39c0889 100644 --- a/firebase-crashlytics-ndk/CHANGELOG.md +++ b/firebase-crashlytics-ndk/CHANGELOG.md @@ -1,57 +1,171 @@ -# 17.1.0 +# Unreleased -- [changed] Updated `firebase-crashlytics` dependency to v17.1.0. +# 18.2.14 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.14. -# 17.0.1 +# 18.2.13 +* [changed] Updated dependency of `play-services-basement` to its latest + version (v18.1.0). -- [changed] Updated `firebase-crashlytics` dependency to v17.0.1. +# 18.2.12 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.12. -# 17.0.0 +# 18.2.11 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.11. + +# 18.2.10 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.10. + +# 18.2.9 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.9. + +# 18.2.8 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.8. + +# 18.2.7 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.7. + +# 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 `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] 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. + +* [changed] Updated `firebase-crashlytics` dependency to v18.2.4. + +# 18.2.3 +* [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. + +* [changed] Updated `firebase-crashlytics` dependency to v18.2.1. + +# 18.2.0 +* [changed] Updated `firebase-crashlytics` dependency to v18.2.0. + +# 18.1.0 +* [changed] Updated `firebase-crashlytics` dependency to v18.1.0. + +# 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] The Firebase Crashlytics SDK for NDK is now generally +# 18.0.0 +* [changed] Internal changes to support dynamic feature modules. + +* [changed] Updated `firebase-crashlytics` dependency to v18.0.0. + +# 17.4.1 +* [changed] Updated `firebase-crashlytics` dependency to v17.4.1. + +# 17.4.0 +* [changed] Updated `firebase-crashlytics` dependency to v17.4.0. + +# 17.3.1 +* [changed] Updated `firebase-crashlytics` dependency to v17.3.1. + +# 17.3.0 +Note: To ensure proper symbolication of NDK crashes, you must use +[[crashlytics] Gradle plugin v2.4.0+](#crashlytics_gradle_plugin_v2-4-0) when +using this version of 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}) + +# 17.2.2 +* [changed] Updated `firebase-crashlytics` dependency to v17.2.2. + +# 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)) + +* [changed] Updated `firebase-crashlytics` dependency to v17.2.1. + +# 17.1.1 +* [changed] Updated `firebase-crashlytics` dependency to v17.1.1. + +# 17.1.0 +* [changed] Updated `firebase-crashlytics` dependency to v17.1.0. + +# 17.0.1 +* [changed] Updated `firebase-crashlytics` dependency to v17.0.1. + +# 17.0.0 +* [changed] The [firebase_crashlytics] SDK for NDK is now generally available. -- [changed] Updated `firebase-crashlytics` dependency to v17.0.0. +* [changed] Updated `firebase-crashlytics` dependency to v17.0.0. # 17.0.0-beta04 - -- [changed] Updated `firebase-crashlytics` dependency to v17.0.0-beta-04. +* [changed] Updated `firebase-crashlytics` dependency to v17.0.0-beta-04. # 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] Improved debug logging. -- [changed] Released new `crashlytics.h` with updated C++ APIs. +* [changed] Released new `crashlytics.h` with updated C++ APIs. -- [changed] Added ProGuard rules files to avoid obfuscating public APIs called +* [changed] Added ProGuard rules files to avoid obfuscating public APIs called from C++. # 17.0.0-beta01 - -This release includes the initial beta release of the Firebase Crashlytics +This release includes the initial beta release of the [firebase_crashlytics] SDK for NDK crash reporting. -The Firebase Crashlytics SDK for NDK is a new version of the Crashlytics +The [firebase_crashlytics] SDK for NDK is a new version of the [crashlytics] SDK for NDK crash reporting built _without_ Fabric and instead built entirely on Firebase. This new SDK has new and improved APIs as well as an artifact name change. The following release notes describe changes in the new SDK. - - If you're using Crashlytics for NDK crash reporting in your app for the - first time, follow the [getting started instructions](https://firebase.google.com/docs/crashlytics/get-started-new-sdk?platform=android). - - If you're upgrading from the legacy Fabric SDK to the - Firebase Crashlytics SDK for NDK crash reporting, follow the - [upgrade instructions](https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android) - to update your app with the following SDK changes. - -Note: The following changes are only relevant to Crashlytics NDK users who -are upgrading from the legacy Fabric 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](https://firebase.google.com/docs/crashlytics/ndk-reports-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. + diff --git a/firebase-crashlytics/CHANGELOG.md b/firebase-crashlytics/CHANGELOG.md index 9abf66f53e9..d356950122f 100644 --- a/firebase-crashlytics/CHANGELOG.md +++ b/firebase-crashlytics/CHANGELOG.md @@ -1,90 +1,401 @@ # Unreleased -- [added] Added a public API to allow bulk logging of custom keys and values. -# 17.1.0 +# 18.3.0 +* [changed] Improved crash reporting reliability for crashes that occur early + in the app's lifecycle. + + +## 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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.12 +* [changed] Internal changes to avoid accessing device-specific information. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.11 +* [changed] Improved crash reporting reliability for multi-process apps on + Android 28 and above. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.10 +* [fixed] Fixed a bug that could prevent unhandled exceptions from being + propogated 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 initalizing on some + devices in some cases. (#3269) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.9 +* [changed] Updated dependencies of `play-services-basement`, + `play-services-base`, and `play-services-tasks` to their latest versions + (v18.0.0, v18.0.1, and v18.0.1, respectively). For more information, see the + [note](#basement18-0-0_base18-0-1_tasks18-0-1) at the top of this release + entry. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.8 +* [changed] Updated to the latest version of the `firebase-datatransport` + library. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.7 +* [changed] Improved runtime efficiency of the + [`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 +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.6 +* [changed] Internal changes to support future improvements to Flutter crash + reporting. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.5 +* [fixed] Fixed a bug that prevented some [crashlytics] session files from + being removed after the 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 +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.4 +* [changed] Internal changes to support ANR collection and their upcoming + display in the console. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.3 +* [fixed] Fixed a race condition that prevented some launch-time crashes from + being reported to Crashlytics. + +* [changed] Internal changes to support upcoming Unity crash reporting + improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.1 +* [fixed] Fixed a `ConcurrentModificationException` that could be logged to + logcat when setting multiple custom key/values in rapid succession. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.2.0 +* [changed] Internal changes. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.1.0 +* [changed] Internal changes to support upcoming Unity features. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. -- [fixed] Updated Crashlytics integration with Firebase Analytics to +# 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 18.0.0 +* [changed] Removed call to + [`FirebaseInstallations#getId()`](/docs/reference/android/com/google/firebase/installations/FirebaseInstallations#getId()) + when [automatic data collection](/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting) + is disabled for [crashlytics]. [crashlytics] no longer makes any network + calls when reporting is disabled. + +* [changed] Internal changes to support dynamic feature modules. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.4.1 +* [changed] Improved rooted device detection. + (#2515) + +* [fixed] Fix an uncaught IllegalStateExeception that could be thrown if + [crashlytics] is unable to register a receiver that collects battery state + information. If registration fails due to the app already having registered + too many receivers, [crashlytics] will report default values for the battery + state rather than crashing. + (#2504) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.4.0 +* [feature] Added the + [`setCustomKeys`](/docs/reference/android/com/google/firebase/crashlytics/CustomKeysAndValues) + API to allow bulk logging of custom keys and values. + ([Github PR #2443](//github.com/firebase/firebase-android-sdk/pull/2443){: .external}) + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.3.1 +* [changed] Removed OkHttp dependency to eliminate conflicts with apps and + SDKs using incompatible versions. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.3.0 +* [changed] Clarified debug logs for crash reports enqueued to be sent via the + `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}) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.2.2 +* [fixed] Fixed crash that can occur when using a built-in resource as the app + launcher icon. + ([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 +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.2.1 +* [fixed] Improved handling of asynchronous tasks that need to wait for + completion on the main 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" %} + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.1.1 +* [changed] To improve the reliability of submitting crash uploads on poor + networks, changed the Transport SDK to retry connection errors + ([Github Issue #1705](//github.com/firebase/firebase-android-sdk/issues/1705){: .external}) + and increased the number of retries before deleting events + ([Github Issue #1708](//github.com/firebase/firebase-android-sdk/issues/1708){: .external}). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-crashlytics` library. The Kotlin extensions library has no additional +updates. + +# 17.1.0 +* [fixed] Updated [crashlytics] integration with [firebase_analytics] to include native crashes in crash-free users counts. -- [fixed] Removed a harmless, yet unexpected `FileNotFoundException` log +* [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)) + ([Github Issue #1559](//github.com/firebase/firebase-android-sdk/issues/1559#issuecomment-638387614){: .external}) -# 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)) -- [fixed] Improved reliability of sending reports at crash time on Android API +## Kotlin +* [feature] The [firebase_crashlytics] Android library with Kotlin + extensions is now available. The Kotlin extensions library transitively + includes the base `firebase-crashlytics` library. To learn more, visit the + [[crashlytics] KTX documentation](/docs/reference/kotlin/com/google/firebase/crashlytics/ktx/package-summary). + +# 17.0.1 +* [fixed] Fixed an issue causing a `SQLiteException` when changing versions + of [crashlytics]. + ([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. -- [changed] The Firebase Crashlytics SDK is now generally available. - -- [fixed] Fixed an issue that could cause apps to crash if a crash report +* [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 +* [changed] Updated dependency on the Firebase Instance ID library to v20.1.5, + which is a step towards a direct dependency on the [firebase_installations] service in a future release. # 17.0.0-beta04 +* [changed] Imposed a limit on the maximum crash report payload size. -- [changed] Imposed a limit on the maximum crash report payload size. - -- [fixed] Reduced crash report payload size. +* [fixed] Reduced crash report payload size. # 17.0.0-beta03 +* [fixed] Fixed internal bugs to improve crash analysis and grouping. -- [fixed] Fixed internal bugs to improve crash analysis and grouping. - -- [changed] Improved compatibility with Google Analytics. For best +* [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. + [firebase_crashlytics] SDK and the Firebase SDK for Google Analytics. -- [changed] Updated remaining Crashlytics backend API calls to prepare +* [changed] Updated remaining [crashlytics] backend API calls to prepare for Fabric sunset. # 17.0.0-beta02 - -- [changed] Removed superfluous `D/FirebaseCrashlytics` prefix from logs. +* [changed] Removed superfluous `D/FirebaseCrashlytics` prefix from logs. ([#1202](https://github.com/firebase/firebase-android-sdk/issues/1202)) -- [changed] Updated Crashlytics backend API calls in preparation for +* [changed] Updated [crashlytics] backend API calls in preparation for Fabric sunset. -- [changed] Upgraded Firebase Analytics integration to improve crash-free +* [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. + latest version of the Firebase SDK for [firebase_analytics] with this + version of [firebase_crashlytics]. # 17.0.0-beta01 +This release for [firebase_crashlytics] includes the initial beta release of +the [firebase_crashlytics] SDK. -This release for Firebase Crashlytics includes the initial beta release of -the Firebase Crashlytics SDK. - -The Firebase Crashlytics SDK is a new version of the Crashlytics SDK +The [firebase_crashlytics] SDK is a new version of the [crashlytics] SDK built _without_ Fabric and instead built entirely on Firebase. This new SDK has new and improved APIs as well as an artifact name change. The following release notes describe changes in the new SDK. - - If you're using Crashlytics in your app for the first time, follow the - [getting started instructions](https://firebase.google.com/docs/crashlytics/get-started-new-sdk?platform=android). - - If you're upgrading from the legacy Fabric SDK to the - Firebase Crashlytics SDK, follow the [upgrade instructions](https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android) - to update your app with the following SDK changes. - -Note: The following changes are only relevant to Crashlytics users who are -upgrading from the legacy Fabric 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 + - [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/CHANGELOG.md b/firebase-database/CHANGELOG.md index 81edabfb425..ebb5b3ed8f5 100644 --- a/firebase-database/CHANGELOG.md +++ b/firebase-database/CHANGELOG.md @@ -1,80 +1,240 @@ # Unreleased -- [fixed] Fixed a crash that prevented the RTDB SDK from reconnecting to the - backend if a token refresh attempt was unsuccesful. -- [fixed] `Query.get` no longer throws "Client is offline" exception when local + +# 20.1.0 +* [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 + [`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 + [`Query.snapshots`](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#snapshots) + and + [`Query.childEvents`](/docs/reference/kotlin/com/google/firebase/database/ktx/package-summary#childEvents) + Kotlin Flows to listen to realtime events. + +# 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The 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. + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. + # 20.0.2 -- [fixed] The SDK can now continue to issue writes for apps that send an - invalid App Check tokens if AppCheck 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 +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 20.0.1 -- [fixed] Fixed an issue where connections would hang when using appcheck - without Auth. +* [fixed] Fixed an issue that prevented clients from connecting to the + backend when the app used [app_check] without [auth]. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. + +# 20.0.0 +* [feature] Added abuse reduction features. + +* [changed] Internal changes to support dynamic feature modules. + +* [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 19.7.0 -- [added] Added `Query.startAfter()` and `Query.endBefore()` filter for paginating - RTDB queries. -- [fixed] Fixed an issue with `Query.get()` that caused the client to go offline if - only `get()` operations were pending. +- [feature] Added [`Query#startAfter()`](/docs/reference/android/com/google/firebase/database/Query#startAfter(java.lang.String,%20java.lang.String)) + and [`Query#endBefore()`](/docs/reference/android/com/google/firebase/database/Query#endBefore(java.lang.String,%20java.lang.String)) + filters to help with paginated queries. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 19.6.0 -- [fixed] Fixed a crash on some Pixel devices that occurred when closing the +- [feature] Added [`DatabaseReference#get()`](/docs/reference/android/com/google/firebase/database/DatabaseReference#get()) + and [`Query#get()`](/docs/reference/android/com/google/firebase/database/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. -- [added] Added `Query.get()`, which allows users to receive a single data - snapshot. `Query.get()` returns the latest value even if an older value - already exists in cache. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 19.5.1 -- [fixed] Fixes a regression in v19.4 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 +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 19.5.0 -- [changed] The SDK can now infer a default database URL if none is provided in - the config. +- [feature] The SDK can now infer a default database URL even if it is omitted +in the project's configuration. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 19.4.0 +- [feature] Added support for connecting to the Firebase Emulator Suite via + a new method, + [`FirebaseDatabase#useEmulator()`](/docs/reference/android/com/google/firebase/database/FirebaseDatabase#useEmulator(java.lang.String,%20int)). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. + +# 19.3.1 - [changed] Added internal HTTP header to the WebChannel connection. -- [feature] Realtime Database now supports connecting to a local emulator via - `FirebaseDatabase#useEmulator()` + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 19.3.0 -- [feature] Added ServerValue.increment() to support atomic field value increments - without transactions. +- [feature] Added [`ServerValue.increment()`](/docs/reference/android/com/google/firebase/database/ServerValue#increment(double)) + to support atomic field value increments without transactions. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. + +# 19.2.1 +- [changed] Internal changes to ensure functionality alignment with other SDK releases. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-database` library. The Kotlin extensions library has no additional +updates. # 19.2.0 -- [changed] Added support for type wildcards in GenericTypeIndicator, expanding - our custom class serialization to include classes with wildcard generics - (#792). +- [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. -# 19.1.1 -- [fixed] Fixed a crash that occurred when we attempted to start a network - connection during app shutdown (#672). + +## 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). # 19.1.0 -- [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 - emulator host will be "10.0.2.2" followed by its port. +- [feature] Added support for the [firebase_database] Emulator. To connect + to the emulator, specify "http://:/?ns=" as your + Database URL (via [`FirebaseDatabase.getInstance(String)`](/docs/reference/android/com/google/firebase/database/FirebaseDatabase.html#getSdkVersion())). + 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. # 18.0.1 -- [changed] The SDK now reports the correct version number (via - `FirebaseDatabase.getSdkVersion()`). +- [changed] Internal changes to ensure functionality alignment with other SDK + releases. +- [fixed] The SDK now reports the correct version number (via + [`FirebaseDatabase.getSdkVersion()`](/docs/reference/android/com/google/firebase/database/FirebaseDatabase.html#getSdkVersion()`). # 17.0.0 -- [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 (#272). -- [internal] Updated the SDK initialization process and removed usages of - deprecated method. -- [changed] Added missing nullability annotations for better Kotlin interop. -- [internal] Removed `@PublicApi` annotations as they are no longer enforced - and have no semantic meaning. +* [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 an issue that could cause a NullPointerException during the - initial handshake with the Firebase backend (#119). +* [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. + +# 16.0.2 +* [fixed] This release includes minor fixes and improvements. + +# 16.0.1 +* [changed] Added `Nullability` annotations to all public API classes/methods. + diff --git a/firebase-dynamic-links/CHANGELOG.md b/firebase-dynamic-links/CHANGELOG.md new file mode 100644 index 00000000000..0ada3c07f3d --- /dev/null +++ b/firebase-dynamic-links/CHANGELOG.md @@ -0,0 +1,133 @@ +# Unreleased + +# 21.1.0 +* [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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-dynamic-links` library. 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-dynamic-links` library. 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. + +- [fixed] Fixed non-null annotation. + #2336 + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-dynamic-links` library. The Kotlin extensions library has no +additional updates. + +# 20.1.1 +- [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-dynamic-links` library. The Kotlin extensions library has no +additional updates. + +# 20.1.0 +- [feature] Added `getUtmParameters` method to `PendingDynamicLinkData`. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-dynamic-links` library. The Kotlin extensions library has no +additional updates. + +# 20.0.0 +- [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-dynamic-links` library. The Kotlin extensions library has no +additional updates. + +# 19.1.1 +- [changed] Updated to support improvements in the KTX library (see below). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library and has the following additional updates: + +- [feature] Added API support for destructuring of + [`ShortDynamicLink`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/ShortDynamicLink) + and + [`PendingDynamicLinkData`](/docs/reference/kotlin/com/google/firebase/dynamiclinks/PendingDynamicLinkData). + +# 19.1.0 +* [feature] Added new getter methods to + [`DynamicLink.Builder`](//firebase.google.com/docs/reference/android/com/google/firebase/dynamiclinks/DynamicLink.Builder) + to improve Kotlin interop. + + +## 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). + +# 19.0.0 +* [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] Updated minSdkVersion to API level 16. + +# 16.1.7 +* Internal refactor. + + +# 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. + + diff --git a/firebase-firestore/CHANGELOG.md b/firebase-firestore/CHANGELOG.md index 9dfb14ef0da..62e9b05b3d5 100644 --- a/firebase-firestore/CHANGELOG.md +++ b/firebase-firestore/CHANGELOG.md @@ -1,366 +1,725 @@ -Android changes are not released automatically. Ensure that changes are released -by opting into a release at -[go/firebase-android-release](http:go/firebase-android-release) (Googlers only). - # Unreleased -- [feature] Added `Query.count()`, which fetches the number of documents in the - result set without actually downloading the documents (#4130). + +# 24.4.0 +* [unchanged] Updated to accommodate the release of the updated + [firestore] Kotlin extensions library. + + +## 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 + [`kotlinx-coroutines-play-services`](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-play-services/){: .external} + to `firebase-firestore-ktx` as a transitive dependency, which exposes the + `Task.await()` suspend function to convert a + [`Task`](https://developers.google.com/android/guides/tasks) into a Kotlin + coroutine. # 24.3.1 -- [changed] Updated dependency of `io.grpc.*` to its latest version (v1.48.1). +* [changed] Updated dependency of `io.grpc.*` to its latest + version (v1.48.1). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. # 24.3.0 -- [changed] Updated dependency of `play-services-basement` to its latest version (v18.1.0). +* [changed] Updated dependency of `play-services-basement` to its latest + version (v18.1.0). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library also has the +following additional updates: + +* [feature] Added + [`Query.snapshots()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots_1) + and + [`DocumentReference.snapshots()`](/docs/reference/kotlin/com/google/firebase/firestore/ktx/package-summary#snapshots) + Kotlin Flows to listen for realtime updates. # 24.2.2 -- [fixed] Fixed an issue `waitForPendingWrites()` could lead to NullPointerException. +- [fixed] Fixed an issue in `waitForPendingWrites()` that could lead to a + `NullPointerException`. + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 24.2.1 - [changed] Internal refactor and test improvements. + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 24.2.0 -- [feature] Added `TransactionOptions` to control how many times a transaction - will retry commits before failing. - +- [feature] Added customization support for + [`FirebaseFirestore.runTransaction`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runTransaction(com.google.firebase.firestore.Transaction.Function%3CTResult%3E)). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 24.1.2 -- [fixed] Fixed an issue where patching multiple fields shadows each other (#3528). +- [fixed] Fixed an issue where patching multiple fields shadows each other. + (#3528). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 24.1.1 -- [fixed] Fixed an issue in the experimental index engine that might have - caused Firestore to exclude document results for limit queries with local +- [fixed] Fixed an issue in the beta version of the index engine that might + cause [firestore] to exclude document results for limit queries with local modifications. -- [changed] Firestore can now serialize Objects with `android.net.Uri`s. + +- [changed] [firestore] can now serialize objects with `android.net.Uri`s. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 24.1.0 -- [feature] Added experimental support for indexed query execution. Indexes can - be enabled by invoking `FirebaseFirestore.setIndexConfiguration()` with the - JSON index definition exported by the Firestore CLI. Queries against the - cache are executed using an index once the asynchronous operation to generate - the index entries completes. -- [fixed] Fixed missing document fields issue with offline overlays (#3528) +- [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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 24.0.2 -- [fixed] Fixed an issue of long grpc reconnection period, when App moves to - foreground after staying in background for a while. -- [fixed] Fixed an AppCheck issue that caused Firestore listeners to stop - working and receive a "Permission Denied" error. This issue only occurred for - AppCheck users that set their expiration time to under an hour. -- [fixed] Fixed a potential problem during Firestore's shutdown that prevented - the shutdown from proceeding if a network connection was opened right before. -- [changed] Queries are now send to the backend before the SDK starts local - processing, which reduces overall Query latency. -- [fixed] Fixed a NPE issue where mutations with multiple documents are not - handled correctly during previous mutation acknowledgement(#3490). +- [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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 24.0.1 -- [changed] Improved performance for databases that contain many document - updates that have not yet been synced with the backend. -- [changed] Improved performance for queries against collections that contain +- [changed] Optimized performance for offline usage. + +- [changed] Optimized performance for queries with collections that contain subcollections. -- [fixed] Fixed an issue that can result in incomplete Query snapshots when an - app is backgrounded during query execution. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 24.0.0 -- [feature] Added support for Firebase AppCheck. +- [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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 23.0.4 - [fixed] Fixed an issue where some fields were missed when copying in the `FirebaseFirestoreSettings.Builder` copy constructor. + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 23.0.3 -- [fixed] Fixed an issue when loading a data bundle with - multi-byte Unicode characters leads to failures. +- [fixed] Fixed an issue that was causing failures when a data bundle with + multi-byte Unicode characters was loaded. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 23.0.2 -- [changed] Increases the aggressiveness of network retries when an app's - foreground status changes. +- [changed] Improved Firestore's network condition detection. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 23.0.1 - [changed] The SDK now tries to immediately establish a connection to the backend when the app enters the foreground. - + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 23.0.0 - - [changed] Internal infrastructure improvements. - - [changed] Internal changes to support dynamic feature modules. +- [changed] Internal infrastructure improvements. + +- [changed] Internal changes to support dynamic feature modules. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 22.1.2 +* [changed] Internal changes in preparation for future support of + dynamic feature modules. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 22.1.1 -- [fixed] Fixed an issue that dropped the limit for queries loaded from - Bundles that were generated by the NodeJS SDK. -- [fixed] Fixed a Firestore 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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 22.1.0 -- [feature] Added support for Firestore Bundles via - `FirebaseFirestore.loadBundle()` and `FirebaseFirestore.getNamedQuery()`. - Bundles contain pre-packaged data produced with the NodeJS Server SDK and - can be used to populate Firestore's cache without reading documents from - the backend. - -# (22.0.2) -- [changed] A write to a document that contains FieldValue transforms is no - longer split up into two separate operations. This reduces the number of - writes the backend performs and allows each WriteBatch to hold 500 writes - regardless of how many FieldValue transformations are attached. - -# (22.0.1) -- [fixed] 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, even though this isn't necessarily - useful. - -# (22.0.0) -- [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. - Any timestamps in Firestore documents are now returned as `Timestamps`. To - convert `Timestamp` classed to `java.util.Date`, use `Timestamp.toDate()`. - -# 21.6.1 -- [changed] Added new internal HTTP headers to the gRPC connection. +* [feature] Added support for [firestore] bundles via + [`FirebaseFirestore.loadBundle()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#loadBundle(java.nio.ByteBuffer)) + and + [`FirebaseFirestore.getNamedQuery()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#getNamedQuery(java.lang.String)). + Bundles contain pre-packaged data produced with the Firebase Admin Node.js SDK + and can be used to populate the cache for [firestore] without the need to + read documents from the backend. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 22.0.2 +* [changed] A write to a document that contains `FieldValue` transforms is no + longer split into two separate operations. This reduces the number of writes + that the backend performs and allows each `WriteBatch` to hold 500 writes + regardless of how many `FieldValue` transformations are attached. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 22.0.1 +* [changed] Removed excess validation of null and NaN values in query filters. + This more closely aligns the SDK with the [firestore] backend, which has + always accepted null and NaN for all operators. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 22.0.0 +* [changed] Removed the deprecated `timestampsInSnapshotsEnabled` setting. + Any timestamp in a [firestore] document is now returned as a `Timestamp`. To + convert `Timestamp` classes to `java.util.Date`, use + [`Timestamp.toDate()`](/docs/reference/android/com/google/firebase/Timestamp#toDate()). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 21.7.1 +* [changed] Added new internal HTTP headers to the gRPC connection. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 21.7.0 +* [feature] Added + [`Query.whereNotIn()`](/docs/reference/android/com/google/firebase/firestore/Query#whereNotIn(java.lang.String,%20java.util.List)) + and + [`Query.whereNotEqualTo()`](/docs/reference/android/com/google/firebase/firestore/Query#whereNotEqualTo(java.lang.String,%20java.lang.Object)) + 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. + +* [fixed] Fixed an issue that caused poor performance for queries that + filtered results using nested array values. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.6.0 -- [fixed] Removed a delay that may have prevented Firestore from immediately - reestablishing a 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 +* [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] Cloud Firestore now supports connecting to a local emulator via - `FirebaseFirestore#useEmulator()` -- [feature] Added `Query.whereNotIn()` and `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 will match documents where the specified field is not - present. + +* [feature] Added support for connecting to the Firebase Emulator Suite via + a new method, + [`FirebaseFirestore#useEmulator()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#useEmulator(java.lang.String,%20int)). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 21.5.0 +* [changed] Updated the protocol buffer dependency to the newer + `protobuf-javalite` artifact. The new artifact is incompatible with the old + one, so this library needed to be upgraded to avoid conflicts. + No developer action is necessary. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.4.3 -- [changed] Firestore now limits the number of concurrent document lookups it - will perform when resolving inconsistencies in the local cache (#1374). +- [changed] [firestore] now limits the number of concurrent document lookups + it will perform when resolving inconsistencies in the local cache. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.4.2 - [changed] Removed Guava dependency from the SDK. This change is the first step in eliminating crashes caused by apps that depend on the wrong flavor of - Guava (#1125). + Guava. ([Issue #1125](//github.com/firebase/firebase-android-sdk/issues/1125)) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.4.1 - [fixed] Fixed a performance regression introduced by the addition of - `Query.limitToLast(n: long)` in Firestore 23.3.1. -- [changed] Changed the in-memory representation of Firestore documents to - reduce memory allocations and improve performance. Calls to + `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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 21.4.0 -- [feature] Firestore previously required that every document read in a +- [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] Firestore now recovers more quickly once connections suffering - packet loss return to normal. +- [changed] Cloud Firestore now recovers more quickly when connections + suffering packet loss return to normal. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.3.1 - [feature] Added `Query.limitToLast(n: long)`, which returns the last `n` documents as the result. + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 21.3.0 - [feature] Added `Query.whereIn()` and `Query.whereArrayContainsAny()` query operators. `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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 21.2.1 -- [fixed] Fixed an issue where Android API level 19 and earlier devices would - crash when unable to connect to Firestore (#904). -- [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] Fix 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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.2.0 -- [feature] Added an `addSnapshotsInSyncListener()` method to - `FirebaseFirestore`that notifies you when all your snapshot listeners are +- [feature] Added an [`addSnapshotsInSyncListener()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#addSnapshotsInSyncListener(java.lang.Runnable)) method to + `FirebaseFirestore` that notifies you when all your snapshot listeners are in sync with each other. -# 21.1.2 -- [fixed] Fixed a crash that could occur when a large number of documents were - removed during garbage collection of the persistence cache. + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.1.1 -- [fixed] Addressed a regression in 21.1.0 that caused the crash: "Cannot add +- [fixed] Addressed a regression in v21.1.0 that caused the crash: "Cannot add document to the RemoteDocumentCache with a read time of zero". + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + # 21.1.0 -- [feature] Added a `terminate()` method to `FirebaseFirestore` 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 `waitForPendingWrites()` method to `FirebaseFirestore` - 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. +Warning: We have received reports that this **v21.1.0 release** of the Firebase +Android SDK for [firestore] can trigger an uncaught exception. Make sure to +update to the next version of the Cloud Firestore SDK to get the fix. + +- [feature] Added a + [`FirebaseFirestore.terminate()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#terminate()) + method which terminates the instance, releasing any held resources. Once it + completes, you can optionally call `clearPersistence()` to wipe persisted + [firestore] data from disk. + +- [feature] Added a + [`FirebaseFirestore.waitForPendingWrites()`](/docs/reference/android/com/google/firebase/firestore/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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 21.0.0 - [changed] Transactions are now more flexible. Some sequences of operations that were previously 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 (#155). + +- [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 +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 20.2.0 - [feature] Added a `@DocumentId` annotation which can be used on a `DocumentReference` or `String` 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 (#491). + +- [fixed] Fixed an internal assertion that was triggered when an update with + a `FieldValue.serverTimestamp()` and an update with a + `FieldValue.increment()` were pending for the same document. Refer to this + [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/491) + for more details. + - [changed] Improved performance of queries with large result sets. + - [changed] Improved performance for queries with filters that only return a small subset of the 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 + +- [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 - https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-on-android). -- [changed] Failed transactions now fail with the exception from the last - attempt instead of always failing with an exception with code `ABORTED`. + [TLS on Android](https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-on-android)). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 20.1.0 -- [changed] SSL and gRPC initialization now happens on a separate thread, which - reduces the time taken to produce the first query result. -- [feature] Added `clearPersistence()`, which clears the persistent storage +* [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 (https://github.com/firebase/firebase-js-sdk/issues/449). + write reliable tests. Refer to this + [GitHub issue](https://github.com/firebase/firebase-js-sdk/issues/449) for + more details. -# 20.0.0 -- [changed] Migrated from the Android Support Libraries to the Jetpack - (AndroidX) Libraries. + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 19.0.2 -- [fixed] Updated gRPC to 1.21.0. A bug in the prior version would occasionally - cause a crash if a network state change occurred concurrently with an RPC. - (#428) +* [fixed] Updated gRPC to 1.21.0. A bug in the prior version would + occasionally cause a crash if a network state change occurred concurrently + with an RPC. Refer to + [GitHub issue #428](https://github.com/firebase/firebase-android-sdk/issues/428) + for more details. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 19.0.1 -- [fixed] Fixed an issue that prevented schema migrations for clients with - large offline datasets (#370). +* [fixed] Fixed an issue that prevented schema migrations for clients with + large offline datasets. Refer to this + [GitHub issue](https://github.com/firebase/firebase-android-sdk/issues/370) + for more details. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. # 19.0.0 -- [feature] You can now query across all collections in your database with a - given collection ID using the `FirebaseFirestore.collectionGroup()` method. -- [changed] The garbage collection process for on-disk persistence that +* [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). This threshold can be configured by setting - `FirebaseFirestoreSettings.Builder.setCacheSizeBytes`. It must be set to a - minimum of 1 MB. The garbage collection process can be disabled entirely by - setting `FirebaseFirestoreSettings.setCacheSizeBytes` to - `FirebaseFirestoreSettings.CACHE_SIZE_UNLIMITED`. + 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-firestore` library. The Kotlin extensions library has no additional +updates. + +# 18.2.0 +- [unchanged] No changes to the base `firebase-firestore` library. + + +## 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). # 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. -- [feature] Added functional interface `FirebaseFirestore.runBatch()`, 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 +* [feature] Added [`FieldValue.increment()`](/docs/reference/android/com/google/firebase/firestore/FieldValue#increment(double)), + 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()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestore#runTransaction(com.google.firebase.firestore.Transaction.Function%3CTResult%3E )), + 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 (#272). + +* [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 +* [changed] Internal changes to ensure functionality alignment with other SDK releases. -- [fixed] Fixed calculation of SQLite database size on Android 9 Pie devices. +* [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 (#208). -- [changed] Firestore now recovers more quickly from long periods without - network access (#217). +* [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 https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings.Builder.html#setTimestampsInSnapshotsEnabled(boolean) for more details. -- [feature] Custom objects (POJOs) can now be passed in several ways: as a +* [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()`](/docs/reference/android/com/google/firebase/firestore/FirebaseFirestoreSettings.Builder.html#setTimestampsInSnapshotsEnabled(boolean)) + 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., +* [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 +* [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 +* [changed] [firestore] now recovers more quickly from bad network states. +* [changed] Improved performance for reading large collections. +* [fixed] Offline persistence now properly records schema downgrades. This is + a forward-looking change that allows you to safely downgrade from future SDK versions to this version (v17.1.5). You can already safely downgrade versions now depending on the source version. For example, you can safely downgrade from v17.1.4 to v17.1.2 because there are no schema changes between those - versions. (#134) + versions. Related: + https://github.com/firebase/firebase-android-sdk/issues/134 # 17.1.4 -- [fixed] Fixed a SQLite transaction handling issue that occasionally masked +* [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` + 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 `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] 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()`](/docs/reference/android/com/google/firebase/firestore/SnapshotMetadata.html#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. # 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 be 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 -- [feature] Added `FieldValue.arrayUnion()` and `FieldValue.arrayRemove()` to - atomically add and remove elements from an array field in a document. -- [feature] Added `Query.whereArrayContains()` query operator to find documents - where an array field contains a specific element. +* [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.4 -- [fixed] Fixed an issue where queries returned fewer results than they should, - caused by documents that were cached as deleted when they should not have - been (firebase/firebase-ios-sdk#1548). Some cache data is cleared and so - clients may use extra bandwidth the first time they launch with this version - of the SDK. +# 17.0.5 +* [feature] Added [`FieldValue.arrayUnion()`](/docs/reference/android/com/google/firebase/firestore/FieldValue.html#arrayUnion(Object...)) and [`FieldValue.arrayRemove()`](/docs/reference/android/com/google/firebase/firestore/FieldValue.html#arrayRemove(Object...)) 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. +* [changed] Improved offline performance with many outstanding writes. +* [fixed] Firestore will now recover from auth token expiration when the system clock is wrong. +# 17.0.4 +* [fixed] Fixed an issue where queries returned fewer results than they + should. The issue related to + [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` class now implements `Parcelable` in addition to - `Comparable`. +* [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. + +# 17.0.1 +* [fixed] Fixed an issue where `set()` didn't correctly respect + [`SetOptions.mergeFields()`](/docs/reference/android/com/google/firebase/firestore/SetOptions.html#mergeFields(java.util.List)) + for data containing + [`FieldValue.delete()`](/docs/reference/android/com/google/firebase/firestore/FieldValue.html#delete()) + or + [`FieldValue.serverTimestamp()`](/docs/reference/android/com/google/firebase/firestore/FieldValue.html#serverTimestamp()) + values. + diff --git a/firebase-functions/CHANGELOG.md b/firebase-functions/CHANGELOG.md new file mode 100644 index 00000000000..5e3bddd2072 --- /dev/null +++ b/firebase-functions/CHANGELOG.md @@ -0,0 +1,148 @@ +# Unreleased + +# 20.2.0 +* [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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The Kotlin extensions library has no additional +updates. + +# 20.1.0 +- [feature] Added a new method + [`getHttpsCallableFromUrl(java.net.URL)`](/docs/reference/android/com/google/firebase/functions/FirebaseFunctions#public-httpscallablereference-gethttpscallablefromurl-url-url) + to create callables with URLs. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The Kotlin extensions library has no additional +updates. + +# 20.0.1 +- [fixed] Fixed an issue that prevented functions from proceeding after + [app_check] failures. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The Kotlin extensions library has no additional +updates. + +# 20.0.0 +- [feature] Added abuse reduction features. +- [changed] Internal changes to support dynamic feature modules. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The Kotlin extensions library has no additional +updates. + +# 19.2.0 +* [feature] Added support for custom domains, [`FirebaseFunctions#getInstance()`](/docs/reference/android/com/google/firebase/functions/FirebaseFunctions#getInstance(java.lang.String)). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The Kotlin extensions library has no additional +updates. + +# 19.1.0 +* [feature] Added support for connecting to the Firebase Emulator Suite via + a new method, + [`FirebaseFunctions#UseEmulator()`](/docs/reference/android/com/google/firebase/functions/FirebaseFunctions#useEmulator(java.lang.String,%20int)). + +* [deprecated] Deprecated the `useFunctionsEmulator(String)` method. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The Kotlin extensions library has no additional +updates. + +# 19.0.2 +- [changed] Internal changes to ensure functionality alignment with other SDK releases. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-functions` library. The Kotlin extensions library has no additional +updates. + +# 19.0.1 +* [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). + +# 19.0.0 +* [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). + +# 17.0.0 +* [changed] Updated minSdkVersion to API level 16. + +# 16.3.0 +* [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 + [`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). + diff --git a/firebase-inappmessaging-display/CHANGELOG.md b/firebase-inappmessaging-display/CHANGELOG.md new file mode 100644 index 00000000000..fd24400e106 --- /dev/null +++ b/firebase-inappmessaging-display/CHANGELOG.md @@ -0,0 +1,252 @@ +# Unreleased + +# 20.2.0 +* [fixed] Fixed a bug that prevented marking more than one message as + impressed. + + +## Kotlin +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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 20.1.1 +- [changed] Updated the gRPC dependency version. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 20.1.0 +* [changed] Migrated to Glide library for image downloading. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 20.0.0 +* [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 19.1.5 +* [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app + message. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 19.1.3 +* [changed] Internal changes to maintain compatibility with other Firebase + SDKs. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 19.1.2 +* [changed] Internal changes to maintain compatibility with other Firebase + SDKs. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` 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. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` 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. + + {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` 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) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 19.0.4 +* [fixed] Fixed issue with messages not being fetched on app first open. + +* [fixed] Fixed issue with first foreground trigger not being picked up. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 19.0.3 +* [changed] Internal changes to enable future SDK improvements. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging-display` library. The Kotlin extensions library has no +additional updates. + +# 19.0.2 +* [changed] Updated version of Dagger to 2.24. +* [fixed] Bug fixes to improve SDK stability. +* [fixed] Fixed memory leak. + + +## 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). + +# 19.0.1 +* [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. + +# 18.0.2 +* [changed] Updated to support Picasso version 2.71828. +* [fixed] Updated to send engagement metrics via [analytics]. +* [fixed] Fixed issue with callbacks triggering for Card templates. + +# 17.2.0 +* [feature] Adds support for card 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. + +# 17.1.0 +* [feature] Adds functionality to programmatically register listeners for + updates on in-app engagement (for example, impression, click, display errors). See + [`FirebaseInAppMessaging.addClickListener()`](/docs/reference/android/com/google/firebase/inappmessaging/FirebaseInAppMessaging.addClickListener()) + for more details. + +# 17.0.5 +* [fixed] Users with restricted API keys can now use the SDK as expected. + +# 17.0.3 +* [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. + +# 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). + diff --git a/firebase-inappmessaging/CHANGELOG.md b/firebase-inappmessaging/CHANGELOG.md new file mode 100644 index 00000000000..cae4757c2ee --- /dev/null +++ b/firebase-inappmessaging/CHANGELOG.md @@ -0,0 +1,252 @@ +# Unreleased + +# 20.2.0 +* [fixed] Fixed a bug that prevented marking more than one message as + impressed. + + +## Kotlin +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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 20.1.1 +- [changed] Updated the gRPC dependency version. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 20.1.0 +* [changed] Migrated to Glide library for image downloading. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 20.0.0 +* [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 19.1.5 +* [fixed] Fixed `WindowManager$BadTokenException` when showing an in-app + message. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 19.1.3 +* [changed] Internal changes to maintain compatibility with other Firebase + SDKs. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 19.1.2 +* [changed] Internal changes to maintain compatibility with other Firebase + SDKs. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` 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. + + {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` 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) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 19.0.4 +* [fixed] Fixed issue with messages not being fetched on app first open. + +* [fixed] Fixed issue with first foreground trigger not being picked up. + +* [changed] Internal migration to use the [firebase_installations] service. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 19.0.3 +* [changed] Internal changes to enable future SDK improvements. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-inappmessaging` library. The Kotlin extensions library has no +additional updates. + +# 19.0.2 +* [changed] Updated version of Dagger to 2.24. +* [changed] Made info messages more clear in logcat. + + +## 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). + +# 19.0.1 +* [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. + +# 18.0.2 +* [fixed] Updated to send engagement metrics via [analytics]. +* [fixed] Fixed issue with callbacks triggering for Card templates. + +# 17.2.0 +* [feature] Adds support for card 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. + +# 17.1.0 +* [feature] Adds functionality to programmatically register listeners for + updates on in-app engagement (for example, impression, click, display errors). + See + [`FirebaseInAppMessaging.addClickListener()`](/docs/reference/android/com/google/firebase/inappmessaging/FirebaseInAppMessaging.addClickListener()) + for more details. + +# 17.0.5 +* [fixed] Users with restricted API keys can now use the SDK as expected. + +# 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. + +# 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. + +# 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). + diff --git a/firebase-installations/CHANGELOG.md b/firebase-installations/CHANGELOG.md index 1b8baeab0a2..40d4a4b5bea 100644 --- a/firebase-installations/CHANGELOG.md +++ b/firebase-installations/CHANGELOG.md @@ -1,4 +1,7 @@ -# v17.0.0 +# Unreleased + +# 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). -- [added] The Firebase Installations Service is an infrastructure service for Firebase services that creates unique identifiers and authentication tokens for Firebase clients (called "Firebase Installations") enabling Firebase Targeting, i.e. interoperation between Firebase services. -- [added] The Firebase Installations SDK introduces the Firebase Installations API. Developers that use API-restrictions for their API-Key may experience blocked requests (https://stackoverflow.com/questions/58495985/). This problem can be mitigated by following the instructions found [here](API_KEY_RESTRICTIONS.md). \ No newline at end of file diff --git a/firebase-messaging-directboot/CHANGELOG.md b/firebase-messaging-directboot/CHANGELOG.md new file mode 100644 index 00000000000..459f7ec15b7 --- /dev/null +++ b/firebase-messaging-directboot/CHANGELOG.md @@ -0,0 +1,110 @@ +# Unreleased + +# 23.1.0 +* [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). +# 23.0.7 +* [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). +# 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). + +# 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). + +# 23.0.2 +* [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). + +# 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). + +# 22.0.0 +* [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). + +# 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). + +# 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). + +# 20.3.0 +* [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). + +# 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). + +# 20.2.2 +Warning: **This version of `firebase-messaging-directboot` (v20.2.2) should not +be used.** A related library has a known issue (for more details, see +[`firebase-messaging` v20.2.2](/support/release-notes/android#messaging_v20-2-2)). +A fix for this issue was released on July 08, 2020 +(see [v20.2.3](/support/release-notes/android#messaging-directboot_v20-2-3)). + +* [changed] Internal improvements. + +# 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). + + +# 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) + for more information. + diff --git a/firebase-messaging/CHANGELOG.md b/firebase-messaging/CHANGELOG.md new file mode 100644 index 00000000000..a22bf487c22 --- /dev/null +++ b/firebase-messaging/CHANGELOG.md @@ -0,0 +1,396 @@ +# Unreleased + +# 23.1.0 +* [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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + +* [changed] Internal changes to notification building methods. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + +* [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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + +* [feature] Internal changes to use proto instead of JSON for logging. + +* [changed] Internal changes to support dynamic feature modules. + +* [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The Kotlin extensions library has no additional +updates. + +# 21.0.1 +* [changed] Updated to latest version of the `firebase-datatransport` library. + +* [feature] The SDK now gracefully handles missing default resources. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-messaging` library. The Kotlin extensions library has no additional +updates. + +# 20.3.0 +* [feature] Added + [`getToken`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging.html#getToken()) + and + [`deleteToken`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging.html#deleteToken()) + methods directly to `FirebaseMessaging`. + +* [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). + +# 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). + +# 20.2.3 +* [fixed] Fixed an issue that caused an app to crash when a user tapped on a + received notification. + +# 20.2.2 +Warning: **This version of `firebase-messaging` (v20.2.2) should not be used.** +It has a known issue that causes an app to crash when a user taps on a +received notification. A fix for this issue was released on July 08, 2020 +(see [v20.2.3](/support/release-notes/android#messaging_v20-2-3)). + +* [changed] Internal improvements. + +# 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). + +# 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)). + +# 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)). + +# 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. + +# 20.1.5 +Warning: In some cases, `firebase-messaging` v20.1.4 and v20.1.5 are erroneously +consuming system resources which can negatively impact the performance of a +user's device. To avoid this effect, **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. + +# 20.1.4 +Warning: In some cases, `firebase-messaging` v20.1.4 and v20.1.5 are erroneously +consuming system resources which can negatively impact the performance of a +user's device. To avoid this effect, **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. + +# 20.1.3 +* [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)). + +# 20.1.1 +Warning: This version of `firebase-messaging` (v20.1.1) has known issues +involving silent failures 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. + +* [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. + +# 20.1.0 +* [feature] Added + [`setDeliveryMetricsExportToBigQuery(boolean)`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging.html#setDeliveryMetricsExportToBigQuery(boolean)) + and + [`deliveryMetricsExportToBigQueryEnabled()`](/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging.html#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. + +# 20.0.1 +* [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 Android notifications that include an image. + +* [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". + +# 18.0.0 +* [changed] Updated minSdkVersion to API level 16. + +# 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 + [`RemoteMessage.Notification`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Notification). + +# 17.5.0 +* [changed] Added internal improvements and refactored code. + +# 17.4.0 +* [feature] Added `getChannelId` method to [`RemoteMessage.Notification`](/docs/reference/android/com/google/firebase/messaging/RemoteMessage.Notification) for getting the channel ID set in a notification message. +* [fixed] Fixed a rare `ClassCastException` while receiving a message. + +# 17.3.4 +* [fixed] Bug fixes and internal improvements. + +# 17.3.2 +* [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. + +# 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. + +# 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. + diff --git a/firebase-ml-modeldownloader/CHANGELOG.md b/firebase-ml-modeldownloader/CHANGELOG.md new file mode 100644 index 00000000000..1995e3e58ff --- /dev/null +++ b/firebase-ml-modeldownloader/CHANGELOG.md @@ -0,0 +1,105 @@ +# Unreleased + +# 24.1.0 +* [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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-ml-modeldownloader` 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 `com.google.firebase:firebase-ml-common` SDK. + (#3321) + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-ml-modeldownloader` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-ml-modeldownloader` 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-ml-modeldownloader` library. The Kotlin extensions library has no +additional updates. +# 24.0.1 +* [fixed] Added support for Android API key restrictions. + +# 24.0.0 +- [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-ml-modeldownloader` 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. + + +## 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). + +# 23.0.0 +This release includes the initial beta release of the +[firebase_ml] Model Downloader SDK. + +The [firebase_ml] Model Downloader SDK provides APIs for downloading models +hosted with [[firebase_ml] Custom Model Hosting](/docs/ml/use-custom-models). +This SDK is a lightweight version 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. + diff --git a/firebase-perf/CHANGELOG.md b/firebase-perf/CHANGELOG.md index 5caad2433c3..e1597c0f170 100644 --- a/firebase-perf/CHANGELOG.md +++ b/firebase-perf/CHANGELOG.md @@ -1,199 +1,247 @@ -# Firebase Performance Monitoring SDK (aka `firebase-perf` and `firebase-perf-ktx`) +# Unreleased -Refer [GMaven](https://maven.google.com/web/index.html?q=firebase-perf#com.google.firebase:firebase-perf) for the release artifacts and [Firebase Android Release Notes](https://firebase.google.com/support/release-notes/android) for the release info. +* [fixed] Fixed a bug where screen traces were not capturing frame metrics for multi-activity apps. +* [feature] Added support for measuring screen performance metrics for "Activity Fragments" out-of-the-box. +* [fixed] Excluded custom attributes whose key/value length is 0. -## Example Changelog -``` -## vX.Y.Z (MXX) +# 20.2.0 +* [unchanged] Updated to accommodate the release of the updated + [perfmon] Kotlin extensions library. -#### Android library / Kotlin extensions -* {{feature}} You can now do this cool new thing. For more details, refer to the [documentation](docs/path). +## 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 + [`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). -* {{fixed}} Fixed the `methodFoo` warning. -* {{changed}} You need to do _this_ instead of _that_. +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-performance` library. The 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). -> **Note:** Refer go/firebase-android-release for `MXX` info. +* [fixed] Fixed a bug where screen traces were not capturing frame metrics for + multi-Activity apps. -## Unreleased +* [fixed] Excluded custom attributes that have key/value lengths of 0. -* {{fixed}} Fixed a bug where screen traces were not capturing frame metrics for multi-activity apps. -* {{feature}} Added support for measuring screen performance metrics for "Activity Fragments" out-of-the-box. -* {{fixed}} Excluded custom attributes whose key/value length is 0. -## Released +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-performance` library. The Kotlin extensions library has no additional +updates. -## v20.0.6 (M112) +# 20.0.6 +* [fixed] Fixed a null pointer exception (NPE) when instrumenting network + requests. + (#3406) -#### Android library +* [fixed] Fixed a bug where incorrect session IDs were associated with some + foreground and background traces. -* {{fixed}} Fixed a null pointer exception (NPE) when instrumenting network requests. ([GitHub Issue #3406](//github.com/firebase/firebase-android-sdk/issues/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 extensions +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v20.0.5 (M111) - -#### Android library +# 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. -* {{feature}} Enable global custom attributes on Network Requests -* {{fixed}} Update log statement to differentiate event drop because of rate limiting and sampling. - -#### Kotlin extensions +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v20.0.1 (M97) +# 20.0.4 +* [changed] Improved [perfmon] start up time by 25%. This improvement was + achieved by moving some component initialization to background threads. + -#### Android library +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-performance` library. The Kotlin extensions library has no additional +updates. -* {{feature}} Firebase Performance logs now contain URLs to see the performance - data on the Firebase console. -* {{fixed}} Fixed RateLimiter replenishment logic and unit alignment. +# 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. -#### Kotlin extensions +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v20.0.0 (M95) +# 20.0.2 +* [fixed] Fixed inaccurate calculation of screen activity metrics for + multi-activity apps. + (#2672) -#### Android library + Note: You may see some changes in data for frozen frames and slow rendering + metrics. -* {{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. +* [fixed] Fixed issue where screen traces were not being tracked for Android + API levels 23 and below. -#### Kotlin extensions +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v19.1.1 (M89) +# 20.0.1 +* [feature] Logs for [firebase_perfmon] now contain URLs to view + performance data in the [name_appmanager]. +* [fixed] Fixed `RateLimiter` replenishment logic and unit alignment. -#### Android library -* {{feature}} The Firebase Performance Monitoring SDK is now open sourced. -* {{changed}} Improved performance event dispatch wait time from 2 hours to - 30 seconds. +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-performance` library. The Kotlin extensions library has no additional +updates. -#### Kotlin extensions +# 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). +* [changed] Improve the launch time of the SDK. + +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v19.1.0 (M87) +# 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`. + -#### Android library +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-performance` library. The Kotlin extensions library has no additional +updates. -* {{changed}} Removed GMS dependency from {{perfmon}}. Google Play services - installation is no longer required to use firebase performance. +# 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 +* [changed] Improved performance event dispatch wait time from 2 hours to 30 seconds. -#### Kotlin extensions +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v19.0.11 (M85) - -#### Android library - -* {{fixed}} Upgraded protobuf dependency to the latest released version - ([GitHub Issue #2158](//github.com/firebase/firebase-android-sdk/issues/2158)) +# 19.0.11 +* [fixed] Upgraded protobuf dependency to the latest released version + (#2158) -#### Kotlin extensions +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v19.0.10 (M83) +# 19.0.10 +Note: We recommend using [perfmon] Gradle plugin v1.3.4+ with this version of +the [perfmon] SDK and above. -#### Android library -Note: We recommend using {{perfmon}} Gradle plugin version v1.3.4 or above with -this version of SDK. - -* {{changed}} Integrated with the `firebase-datatransport` library for +* [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 +* [fixed] Synchronized the access to fix a race condition that was causing a `NullPointerException` when making network requests. - ([GitHub Issue #2096](//github.com/firebase/firebase-android-sdk/issues/2096)) + (#2096) -#### Kotlin extensions +## Kotlin The Kotlin extensions library transitively includes the updated `firebase-performance` library. The Kotlin extensions library has no additional updates. -## v19.0.9 (M80) - -#### Android library - -* {{fixed}} Created lazy dependency on {{firebase_remote_config}} to avoid - main thread contention issue. ([GitHub Issue #1810](//github.com/firebase/firebase-android-sdk/issues/1810)) +# 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] 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] Removed proguarding for SDK; logcat messages will show original + class paths for debugging. -* {{changed}} Improved build configurations and dependencies to reduce SDK size. +* [changed] Improved build configurations and dependencies to reduce SDK + size. -#### Kotlin extensions -* {{feature}} The {{firebase_perfmon}} Android library with Kotlin +## 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). - -## v19.0.8 (M75) - -#### Android library + [[perfmon] KTX documentation](/docs/reference/kotlin/com/google/firebase/perf/ktx/package-summary). -* {{changed}} Updated the +# 19.0.8 +* [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}}. - ([GitHub Issue #403](//github.com/firebase/firebase-android-sdk/issues/403)) +* [fixed] Silenced [firebase_remote_config] logging triggered by + [firebase_perfmon]. + (#403) -* {{fixed}} Removed unnecessary logging. {{perfmon}} now only logs debug +* [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_ +* [changed] Migrated to use the [firebase_installations] service _directly_ instead of using an indirect dependency via the Firebase Instance ID SDK. -## v19.0.7 (M69) + {% include "docs/reference/android/client/_includes/_iid-indirect-dependency-solutions.html" %} -#### Android library - -* {{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}} +# 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: @@ -201,139 +249,69 @@ updates. [#1397](//github.com/firebase/firebase-android-sdk/issues/1397), and [#1339](//github.com/firebase/firebase-android-sdk/issues/1339). -## v19.0.6 (M68) - -#### Android library - -* {{fixed}} Fixed an NPE crash when calling `trace.stop()`. - ([GitHub Issue #1383](//github.com/firebase/firebase-android-sdk/issues/1383)) - -## v19.0.5 (M62) +# 19.0.6 +* [fixed] Fixed an NPE crash when calling `trace.stop()`. + (#1383) -#### Android library - -* {{fixed}} Muted logcat logging for {{firebase_perfmon}} when +# 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}} Skipped automatic performance event creation when +* [fixed] Skipped automatic performance event creation when `firebase_performance_collection_enabled` is set to false. -* {{changed}} Internal infrastructure improvements. - -## v19.0.4 (M61) - -#### Android library - -* {{changed}} Improved internal infrastructure to work better with - {{firebase_remote_config}}. - ----- - -**NOTE:** For some historical reasons below internal versions may or may not correlate to an externally released version. However, this document keeps track of what internal version was released as an external version so that its easier to figure out what version of the SDK we were dealing with (and whether it was publicly released). Unfortunately, we did not keep records of what internal version correlated to an external version until `v16.2.0`, and so the values before that were procured as a result of manually going through history and correlating release dates. - -## 19.0.3 (M60.1): 1.0.0.282466371 - -#### Android library - -* {{changed}} Internal infrastructure improvements. - -## 19.0.2 (M59): 1.0.0.277188197 +* [changed] Internal infrastructure improvements. -#### Android library +# 19.0.4 +* [changed] Improved internal infrastructure to work better with + [firebase_remote_config]. -* {{changed}} Internal infrastructure improvements. +# 19.0.3 +* [changed] Internal infrastructure improvements. -## 19.0.1 (M57): 1.0.0.272275548 +# 19.0.2 +* [changed] Internal infrastructure improvements. -#### Android library +# 19.0.1 +* [changed] Internal infrastructure improvements. -* {{changed}} Internal infrastructure improvements. - -## 19.0.0 (M53): - -#### Android library - -* {{changed}} Versioned to add nullability annotations to improve the Kotlin +# 19.0.0 +* [changed] Versioned to add nullability annotations to improve the Kotlin developer experience. No other changes. -## 18.0.1 (M50): 1.0.0.252929170 - -#### Android library - -* {{fixed}} Fixed an `IllegalStateException` that was thrown when an activity +# 18.0.1 +* [fixed] Fixed an `IllegalStateException` that was thrown when an activity with hardware acceleration disabled was stopped. - -## 18.0.0 (Android X - Clone of 17.0.2): 1.0.0.249530108 - -## 17.0.2 (M48): 1.0.0.249530108 - -#### Android library - -* {{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.1 (Unreleased): 1.0.0.242580265 - -## 17.0.0 (M47): 1.0.0.242580265 -#### Android library +# 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]. -* {{removed}} Removed the deprecated counter API. Use metrics API going forward. +# 17.0.0 +* [removed] Removed the deprecated counter API. Use metrics API going forward. -## 16.2.5 (M46): 1.0.0.240228580 - -#### Android library - -* {{fixed}} Fixed a bug that was causing apps using multiple processses to +# 16.2.5 +* [fixed] Fixed a bug that was causing apps using multiple processses to throw an `IllegalStateException` in the non-main processes. -## 16.2.4 (M44): 1.0.0.233854359 - -#### Android library - -* {{fixed}} Fixed a bug that was causing a `NoClassDefFoundError` to be thrown +# 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]. +* [changed] [firebase_perfmon] no longer depends on [firebase_analytics]. -* {{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 (M40): 1.0.0.225053256 - -#### Android library - -* {{fixed}} Bug fixes. - -## 16.2.2 (M38.1): 1.0.0.221486272 - -## 16.2.1 (M38): 1.0.0.221486272 - -#### Android library - -* {{fixed}} SDK size is now smaller. - -## 16.2.0 (M36): 1.0.0.217212991 - -#### Android library - -* {{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.1 (EAP): 1.0.0.212694509 - -## 16.1.0 (M30): 1.0.0.206222422 - -#### Android library +# 16.2.3 +* [fixed] Bug fixes. -* {{fixed}} Fixed a `SecurityException` crash on certain devices that do not have Google Play Services on them. +# 16.2.1 +* [fixed] SDK size is now smaller. -## 16.0.0: 1.0.0.196558987 +# 16.2.0 +* [feature] Introduces the Sessions feature, which gives developers access to actionable insights about data captured using [perfmon]. -## 15.2.0: 1.0.0.194951622 +* [fixed] Minor bug fixes and improvements. -## 15.1.0: 1.0.0.194607773 +# 16.1.0 +* [fixed] Fixed a `SecurityException` crash on certain devices that do not have Google Play Services on them. -## 15.0.0: 1.0.0.184862077 diff --git a/firebase-storage/CHANGELOG.md b/firebase-storage/CHANGELOG.md index 4c74ce7382e..7ffa4afeff7 100644 --- a/firebase-storage/CHANGELOG.md +++ b/firebase-storage/CHANGELOG.md @@ -1,39 +1,179 @@ +# Unreleased + # 20.0.3 - [fixed] Fixed an issue that caused infinite number of retries with no exponential backoff for `uploadChunk` +# 20.2.0 +* [unchanged] Updated to accommodate the release of the updated + [firebase_storage_full] Kotlin extensions library. + + +## 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 + [`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 + [`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). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library. The 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. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library. The Kotlin extensions library has no additional +updates. + +# 20.0.0 +* [feature] Added abuse reduction features. + +* [feature] Added the ability to connect to the [firebase_storage] emulator. + +* [changed] Internal changes to support dynamic feature modules. + +* [changed] Internal infrastructure improvements. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library. The Kotlin extensions library has no additional +updates. + # 19.2.2 - [fixed] Fixed an issue that caused the SDK to report incorrect values for - "getTotalByteCount()" after a download was paused and resumed. +[`getTotalByteCount()`](docs/reference/android/com/google/firebase/storage/FileDownloadTask.TaskSnapshot#getTotalByteCount()) +after a download was paused and resumed. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library. The 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. + was deleted before the download completed. Instead, the download now fails. + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library. The Kotlin extensions library has no additional +updates. -# 19.0.2 -- [fixed] Fixed an encoding issue in `list()/listAll()` that caused us to miss - entries for folders that contained special characters. + + + + +# 19.2.0 +- [changed] Updated to support improvements in the KTX library (see below). + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library and has 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). + +# 19.1.1 +- [changed] Internal changes to ensure functionality alignment with other SDK releases. + + + +## Kotlin +The Kotlin extensions library transitively includes the updated +`firebase-storage` library. The Kotlin extensions library has no additional +updates. + +# 19.1.0 +- [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()`](/docs/reference/android/com/google/firebase/storage/StorageReference.html#list(int)) + 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). # 19.0.1 -- [fixed] `listAll()` now propagates the error messages if the List operation - was denied by a Security Rule. +- [fixed] [`StorageReference.listAll()`](/docs/reference/android/com/google/firebase/storage/StorageReference.html#listAll()) + now propagates the error messages if the List operation was denied by a + Security Rule. # 19.0.0 -- [changed] Added missing nullability annotations for better Kotlin interop. -- [internal] Removed ``@PublicApi` annotations as they are no longer enforced - and have no semantic meaning. +* [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. # 18.1.0 -- [feature] Added `StorageReference.list()` and `StorageReference.listAll()`, +* [feature] Added + [`StorageReference.list()`](/docs/reference/android/com/google/firebase/storage/StorageReference.html#list(int)) + and [`StorageReference.listAll()`](/docs/reference/android/com/google/firebase/storage/StorageReference.html#listAll()), which allows developers to list the files and folders under the given StorageReference. -- [changed] Added validation to `StorageReference.getDownloadUrl()` and - `StorageReference.getMetadata()` to return an error if the reference is the - root of the bucket. +* [changed] Added validation to + [`StorageReference.getDownloadUrl()`](/docs/reference/android/com/google/firebase/storage/StorageReference.html#getDownloadUrl()) + and [`StorageReference.getMetadata()`](/docs/reference/android/com/google/firebase/storage/StorageReference.html#getMetadata()) + to return an error if the reference is the root of the bucket. # 17.0.0 -- [internal] Updated the SDK initialization process and removed usages of - deprecated methods. -- [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] 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 +* [fixed] This release includes minor fixes and improvements. + +# 16.0.1 +* [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). + +* [changed] Removed the deprecated `StorageMetadata.getDownloadUrl()` and + `UploadTask.TaskSnapshot.getDownloadUrl()` methods. To get a current download + URL, use + [`StorageReference.getDownloadUr()`](/docs/reference/android/com/google/firebase/storage/StorageReference.html#getDownloadUrl()). +