Go to console

Firebase Android Release Notes

To see release notes for the Firebase console and for other Firebase platforms and related SDKs, see the Firebase Release Notes. To install this SDK, see Add Firebase to your Android Project.

Latest SDK versions

Service Gradle dependency
Firebase Core com.google.firebase:firebase-core:16.0.8
Ads com.google.firebase:firebase-ads:17.2.0
Analytics com.google.firebase:firebase-analytics:16.4.0
App Indexing com.google.firebase:firebase-appindexing:17.1.0
Authentication com.google.firebase:firebase-auth:16.2.1
Cloud Firestore com.google.firebase:firebase-firestore:18.2.0
Cloud Functions com.google.firebase:firebase-functions:16.3.0
Cloud Messaging com.google.firebase:firebase-messaging:17.6.0
Cloud Storage com.google.firebase:firebase-storage:16.1.0
Crash Reporting com.google.firebase:firebase-crash:16.2.1
Crashlytics com.crashlytics.sdk.android:crashlytics:2.9.9
Dynamic Links com.google.firebase:firebase-dynamic-links:16.1.8
Invites com.google.firebase:firebase-invites:16.1.1
In-App Messaging com.google.firebase:firebase-inappmessaging:17.1.1
In-App Messaging Display com.google.firebase:firebase-inappmessaging-display:17.1.1
ML Kit: Vision APIs com.google.firebase:firebase-ml-vision:19.0.3
ML Kit: Image Labeling Model com.google.firebase:firebase-ml-vision-image-label-model:17.0.2
ML Kit: Face Detection Model com.google.firebase:firebase-ml-vision-face-model:17.0.2
ML Kit: Natural Language APIs com.google.firebase:firebase-ml-natural-language:18.2.0
ML Kit: Language Identification Model com.google.firebase:firebase-ml-natural-language-language-id-model:18.0.3
ML Kit: Smart Reply Model com.google.firebase:firebase-ml-natural-language-smart-reply-model:18.0.0
ML Kit: Custom Model APIs com.google.firebase:firebase-ml-model-interpreter:18.0.0
Performance Monitoring com.google.firebase:firebase-perf:16.2.5
Realtime Database com.google.firebase:firebase-database:16.1.0
Remote Config com.google.firebase:firebase-config:16.5.0
Firebase Bill of Materials (BoM) com.google.firebase:firebase-bom:17.0.0
The latest Firebase BoM version contains the latest versions of each Firebase Android library available at the BoM's release.
For the library versions mapped to previous BoM versions, review the release notes below.

Update - April 05, 2019

Cloud Firestore version 18.2.0

Cloud Firestore Kotlin extensions library version 18.2.0

  • The beta release of a Cloud Firestore Android library with Kotlin extensions is now available. The Kotlin extensions library transitively includes the corresponding firebase-firestore library. Visit the open source documentation to learn more about getting started with and using Kotlin extensions.

Authentication version 16.2.1

  • Improved error messages for edge cases where providers had been misconfigured in the Firebase console.

  • Internal compatibility changes to improve interoperability with different versions of Google Play services.

Firebase Instance ID version 17.1.2

  • Internal changes to ensure functionality alignment with other SDK releases.

Cloud Messaging version 17.6.0

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

Performance Monitoring version 16.2.5

  • Fixed a bug that was causing apps using multiple processses to throw an IllegalStateException in the non-main processes.

Remote Config version 16.5.0

Update - April 02, 2019

Firebase Bill of Materials (Firebase BoM) version 17.0.0

Update - March 27, 2019

Firebase Instance ID version 17.1.1

  • Added internal improvements and refactored code.

In-App Messaging version 17.1.1

  • Fixed Cloud Firestore and In-App Messaging compatibility on Android API level 19 (KitKat). The underlying issue was that Cloud 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 for more information.

In-App Messaging-display version 17.1.1

  • Fixed Cloud Firestore and In-App Messaging compatibility on Android API level 19 (KitKat). The underlying issue was that Cloud 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 for more information.

Cloud Firestore version 18.2.0

  • Added FieldValue.increment(), which can be used in update() and set(..., SetOptions.merge()) to increment or decrement numeric field values safely without transactions.

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

  • Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release.

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

  • Improved error messages for certain Number types that are not supported by our serialization layer.

Cloud Messaging version 17.5.0

  • Added internal improvements and refactored code.

ML Kit Common version 17.0.0

  • Renamed FirebaseCloudModelSource class to FirebaseRemoteModel class.
  • Renamed FirebaseLocalModelSource class to FirebaseLocalModel class.
  • Renamed registerCloudModelSource() to registerRemoteModel() in FirebaseModelManager
  • Renamed registerLocalModelSource() to registerLocalModel() in FirebaseModelManager
  • Removed getCloudModelSource() in FirebaseModelManager
  • Removed getLocalModelSource() in FirebaseModelManager

ML Kit Model Interpreter version 18.0.0

  • Renamed setCloudModelName to setRemoteModelName in FirebaseModelOptions.
  • Removed getCloudModelName() method in FirebaseModelOptions.
  • Removed getLocalModelName() method in FirebaseModelOptions.

ML Kit Natural Language version 18.2.0

ML Kit Natural Language Identification Model version 18.0.3

  • No changes from previous version

ML Kit Smart Reply Model version 18.0.0

  • Initial release of the Smart Reply Model.

ML Kit Vision version 19.0.3

  • No changes from previous version

Remote Config version 16.4.1

  • The SDK now enforces Android API Key restrictions.
  • 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.

Firebase Gradle Plugins version 1.2.0

  • Updates to the Firebase Gradle Plugins (firebase-plugins and perf-plugin) for Android Studio 3.x are now available.

    This release:

    • Provides support for JDK 11 with ASM API upgrade to "7.0".
    • Fixes an issue with build failure when the transform is applied but disabled.
    • Removes the requirement that the Firebase Performance Monitoring plugin must be listed after the Android application plugin for it to work.
    • Improves the build performance by disabling the instrumentation and making it non-operational when the project property flag firebasePerformanceInstrumentationEnabled = false is specified in the gradle.properties file.

Update - March 15, 2019

Firebase Bill of Materials (Firebase BoM) version 16.0.0

Cloud Functions for Firebase Client SDK version 16.3.0

  • Changed the default timeout for callable functions to 70 seconds (#2329).

  • Added setTimeout and withTimeout methods to change the timeout for a callable (#2329).

Analytics version 16.4.0

  • Updates to improve communications with other Firebase SDKs.

  • Fixed an issue leading to an increase in reported sessions.

The following Firebase Android SDKs have been updated with internal changes to ensure functionality alignment with other SDK releases.

  • Firebase core version 16.0.8
  • Dynamic Links version 16.1.8
  • Invites version 16.1.1

Update - March 13, 2019

Ads version 17.2.0

  • Updates to the Google Mobile Ads Android SDK and Firebase Ads SDK. Refer to the product release notes.

Update - March 11, 2019

Authentication version 16.2.0

  • Added an API to allow sign-in via a web-based flow for Generic OAuth providers.

  • Improved some error messages and fixed a rare timeout bug.

Performance Monitoring version 16.2.4

  • Fixed a bug that was causing a NoClassDefFoundError to be thrown which resulted in intermittent app crashes.
  • Updates to make Performance Monitoring work better with the latest version of Firebase Remote Config.
  • Firebase Performance Monitoring no longer depends on Google Analytics for Firebase.

Remote Config version 16.4.0

  • Internal changes to ensure functionality alignment with other SDK releases.

Update - February 26, 2019

Cloud Firestore version 18.1.0

  • Internal changes to ensure functionality alignment with other SDK releases.
  • 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.

Firebase Instance ID version 17.1.0

  • Internal changes to ensure functionality alignment with other SDK releases.

In-App Messaging version 17.1.0

  • Adds functionality to programmatically register listeners for updates on in-app engagement (for example, impression, click, display errors). See FirebaseInAppMessaging.addClickListener() for more details.

In-App Messaging-display version 17.1.0

  • Adds functionality to programmatically register listeners for updates on in-app engagement (for example, impression, click, display errors). See FirebaseInAppMessaging.addClickListener() for more details.

Cloud Messaging version 17.4.0

  • Added getChannelId method to RemoteMessage.Notification for getting the channel ID set in a notification message.
  • Fixed a rare ClassCastException while receiving a message.

The following Firebase Android SDKs have been updated with internal changes to ensure functionality alignment with other SDK releases.

  • Firebase Common version 16.1.0
  • Realtime Database version 16.1.0
  • Cloud Storage version 16.1.0
  • Cloud Functions version 16.2.0

Update - February 08, 2019

Crashlytics version 2.9.9

  • Fixed bug that sometimes prevented Analytics events from being automatically written to Crashlytics logs as "breadcrumbs".

  • Improved logging output when Crashlytics fails to initialize due to missing build tools.

  • Updated Fabric dependency to 1.4.8

Update - February 7, 2019

A/B Testing version 17.1.0

  • Updated API to support the latest Remote Config update.

Invites version 16.1.0

  • Firebase Invites is now deprecated. For more details and information about migrating to other Firebase products, refer to the Invites migration page.

Cloud Firestore version 18.0.1

  • Fixed an issue where Cloud Firestore would crash if handling write batches larger than 2 MB in size.
  • Cloud Firestore now recovers more quickly from long periods without network access.

Dynamic Links version 16.1.7

  • Internal refactor.

Remote Config version 16.3.0

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

  • Refactored the implementation of Remote Config to improve SDK stability and speed, and to remove the Google Play Services dependency.

  • Improved error logs and exception messages.

  • Updated the Android documentation to reflect that Remote Config uses Locale to retrieve location information, similar to iOS's use of countryCode.

Update - January 31, 2019

ML Kit Natural Language version 18.1.1

  • Initial release with support for the Language Identification API.

ML Kit Natural Language Identification Model version 18.0.2

  • Initial release of the Language Identification Model.

ML Kit Common version 16.2.3

  • No changes from previous version

ML Kit Model Interpreter version 17.0.3

  • No changes from previous version

ML Kit Vision version 19.0.2

  • No changes from previous version

Firebase Core version 16.0.7

  • Internal changes to ensure functionality alignment with other SDK releases.

Analytics version 16.3.0

  • This release adds the ability for an app to specify that an event logged while the app is in the background should be part of the current session and that the session should be prolonged. Sessions now begin when the app is foregrounded, and the setMinimumSessionDuration method is now deprecated.

Ads version 17.1.3

  • Internal changes to ensure functionality alignment with other SDK releases.

Update - January 30, 2019

ML Kit Common version 16.2.1

  • Added the FirebaseModelManager class for downloading and managing custom models from the cloud. The class was previously defined under package com.google.firebase.ml.custom.
  • Added FirebaseCloudModelSource and FirebaseLocalModelSource classes for defining and registering custom cloud and local models. The classes were previously defined under package com.google.firebase.ml.custom.model.

ML Kit Model Interpreter version 17.0.1

  • Moved the FirebaseCloudModelSource and FirebaseLocalModelSource classes for defining and registering custom models to package com.google.firebase.ml.common.modeldownload.

  • Upgraded TensorFlowLite dependency from 1.10.1 to 1.12.0.

ML Kit Vision version 19.0.0

  • Unified and enhanced on-device and cloud Image Labeling API.

Update - January 25, 2019

Realtime Database version 16.0.6

  • Fixed a potential NullPointerException calling method java.lang.String.toLowerCase. (https://github.com/firebase/firebase-android-sdk/issues/179)

Cloud Firestore version 18.0.0

  • The timestampsInSnapshotsEnabled setting is now enabled by default. Timestamp fields that read from a DocumentSnapshot are now returned as Timestamp objects instead of Date objects. This is a breaking change; developers must update any code that expects to receive a Date object. See FirebaseFirestoreSettings.Builder.setTimestampsInSnapshotsEnabled() for more details.
  • 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.
  • DocumentSnapshot.get() now supports retrieving fields as custom objects (POJOs) by passing a Class<T> instance, e.g., snapshot.get("field", CustomType.class).
  • 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.

In-App Messaging version 17.0.5

  • Users with restricted API keys can now use the SDK as expected.

In-App Messaging-display version 17.0.5

  • Users with restricted API keys can now use the SDK as expected.

Update - January 09, 2019

Remote Config version 16.1.3

  • Fixed an issue where Remote Config experiments were not collecting results.

Update - December 22, 2018

Crashlytics version 2.9.8

  • Fixed bug with firebase_crashlytics_collection_enabled flag that erroneously disabled data collection under some circumstances.

Update - December 19, 2018

Cloud Firestore version 17.1.5

  • Cloud Firestore now recovers more quickly from bad network states.
  • Improved performance for reading large collections.
  • Offline persistence now properly records schema downgrades. This is a forward-looking change that allows you to safely downgrade from future SDK versions to this version (v17.1.5). You can already safely downgrade versions now depending on the source version. For example, you can safely downgrade from v17.1.4 to v17.1.2 because there are no schema changes between those versions. Related: https://github.com/firebase/firebase-android-sdk/issues/134

Performance Monitoring version 16.2.3

  • Bug fixes.

Update - December 06, 2018

Authentication version 16.1.0

  • Added an API to customize the dynamic link domain that is used in out-of-band email action flows.

  • Bug fixes and internal improvements.

Cloud Firestore version 17.1.4

  • 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.
  • Fixed a race condition that caused a SQLiteDatabaseLockedException when an app attempted to access the SQLite database from multiple threads.

Update - December 03, 2018

The following Firebase Android SDKs have been updated to support internal refactoring and bug fixes:

  • Analytics version 16.0.6
  • Dynamic Links version 16.1.5
  • Google Ads version 17.1.2
  • Invites version 16.0.6
  • Performance Monitoring version 16.2.2
  • Remote Config version 16.1.2

Update - November 29, 2018

Performance Monitoring version 16.2.1

  • SDK size is now smaller.

ML Kit Custom Model version 16.2.4

  • Bug fixes and internal improvements.

ML Kit Vision version 18.0.2

  • Face contour detection now only returns contours for the most prominent face.
  • The face tracking feature is disabled for contour-only detection in FAST mode.
  • Vision detectors no longer override finalize() method.

App Indexing version 17.1.0

  • Apps will need to bump their compileSdkVersion to 28 or higher.

  • Added Indexable.Metadata.Builder.setSliceUri(), which gives developers the ability to provide dynamic and interactive search results, Slices, in the Google search app. Note that this method grants permission for the specified Uri to Google Play Services (com.google.android.gms), to bind to and cache the Slice, and to Google search app (com.google.android.googlequicksearchbox), to render the Slice. The client app can revoke Slice permissions to these packages at any time through SliceManager.revokeSlicePermission().

  • Deprecated GeoShapeBuilder.setBox() and replaced with a varargs GeoShapeBuilder.setBox().

Update - November 9, 2018


  • Updated okhttp versions to 2.7.5 in Open sourced Firebase libraries to fix potential vulnerabilities, as noted in GitHub Issue https://github.com/firebase/firebase-android-sdk/issues/99

Update - November 2, 2018

Analytics version 16.0.5

  • This release includes minor bug fixes.
  • This release includes improvements to startup latency.

Dynamic Links version 16.1.3

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

Update - October 25, 2018


  • Open sourced Firebase libraries are no longer distributed proguarded.

google-services plugin 4.2.0

  • Improved support for instant-app projects.
  • Improved version checking mechanism.
  • Plugin is now Open Sourced at https://github.com/google/play-services-plugins

Cloud Firestore version 17.1.2

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

In-App Messaging version 17.0.3

  • Improved caching logic, added safeguards for cache expiration, and cleaned up API surface to prepare for open sourcing the In-App Messaging-display SDK.

In-App Messaging-display version 17.0.3

  • Improved caching logic, added safeguards for cache expiration, and cleaned up API surface to prepare for open sourcing.

Performance Monitoring version 16.2.0

  • Introduces the Sessions feature, which gives developers access to actionable insights about data captured using Performance Monitoring.

  • Minor bug fixes and improvements.

Update - October 16, 2018

Remote Config version 16.1.0

  • Bug fixes and internal improvements to support Firebase Performance Monitoring features.

Authentication version 16.0.4

  • Bug fixes and internal improvements.

Firebase Instance ID version 17.0.4

  • Fixed an issue that could cause a deadlock during initialization.

Cloud Messaging version 17.3.4

  • Bug fixes and internal improvements.

ML Kit Custom Model version 16.2.3

  • Upgraded TensorFlowLite dependency to 1.10.0

ML Kit Vision version 18.0.1

Update - October 2, 2018

Realtime Database version 16.0.3

  • Fixed an initialization issue that prevented the Realtime Database client from being initialized outside of Android's main thread.

Cloud Firestore version 17.1.1

  • Fixed an issue where the first get() call made after being offline could incorrectly return cached data without attempting to reach the backend.
  • Changed get() to only make one attempt to reach the backend before returning cached data, potentially reducing delays while offline.
  • Fixed an issue that caused Firebase to drop empty objects from calls to set(..., SetOptions.merge()).
  • 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.
  • 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.

Update - September 18, 2018

Cloud Messaging version 17.3.2

  • Fixed an issue that would occasionally cause apps to crash with Android Not Responding (ANR) errors when receiving a message.

Update - September 6, 2018

Firebase Instance ID version 17.0.1

  • Fixed a compatibility issue with Google Cloud Messaging (GCM) libraries, apps using both could experience delayed messages, slow performance, and even device-wide errors.

Realtime Database version 16.0.2

  • This release includes minor fixes and improvements.

Storage version 16.0.2

  • This release includes minor fixes and improvements.

Update - August 23, 2018

  • This release includes minor fixes and improvements to the following SDKs:

    • firebase-core
    • firebase-crash
    • firebase-analytics
    • firebase-dynamic-links
    • firebase-invites

Update - August 22, 2018

In-App Messaging-display version 17.0.1

  • Fixed an issue where Firebase In-App Messaging and Firestore could not be included/built into the same app, because of an obfuscation collision.

In-App Messaging version 17.0.1

  • Fixed an issue where Firebase In-App Messaging and Firestore could not be included/built into the same app, because of an obfuscation collision.

Update - August 21, 2018

Cloud Messaging version 17.3.0

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

Update - August 16, 2018

In-App Messaging version 17.0.0

Correction - August 13, 2018

Cloud Firestore version 17.1.0

  • Corrected an issue with methods in the Cloud Firestore v17.0.5 release. To avoid potential errors, don't use v17.0.5.

Update - August 13, 2018

google-services plugin 4.1.0

  • Improved support for instant-app projects.

Performance Monitoring version 16.1.0

  • Fixed a SecurityException crash on certain devices that do not have Google Play Services on them.

ML Kit version 17.0.0

  • Unified and enhanced on-device and cloud text recognition API.
  • Enhanced cloud document scanning API.

Cloud Firestore version 17.0.5

  • Added FieldValue.arrayUnion() and FieldValue.arrayRemove() to atomically add and remove elements from an array field in a document.
  • Added Query.whereArrayContains() query operator to find documents where an array field contains a specific element.
  • Improved offline performance with many outstanding writes.
  • Firestore will now recover from auth token expiration when the system clock is wrong.

Update - July 27, 2018

Cloud Firestore version 17.0.4

  • Fixed an issue where queries returned fewer results than they should. The issue related to improper caching, so clients may use extra bandwidth the first time they launch with this version of the SDK, as they re-download cleared cached data.

Update - July 12, 2018

Cloud Firestore version 17.0.3

Cloud Functions for Firebase Client SDK version 16.1.0

  • FirebaseFunctions.getInstance() now allows passing in an optional region to override the default "us-central1".

  • New useFunctionsEmulator method allows testing against a local instance of the Cloud Functions Emulator.

google-services plugin 4.0.2

  • Improved support for multi-module builds that require different sets of Firebase dependencies.

strict-version-matcher plugin 1.0.3

  • Improved support for multi-module builds that require different sets of Firebase dependencies.

Update - June 28, 2018

Firebase Instance ID version 16.2.0

Cloud Messaging version 17.1.0

  • Added onNewToken method to FirebaseMessagingService which is invoked when the app gets a new Instance ID token or its existing token changes.

Update - June 21, 2018

Cloud Firestore version 17.0.2

  • gRPC requirement updated from 1.8.0 to 1.12.0. This allows quicker failover between Wi-Fi and cellular networks.

Invites version 16.0.1

  • Fixed incompatibility with firebase-core 16.0.1.

Update - June 14, 2018

Firebase Core version 16.0.1

  • Fixed an issue where Cloud Messaging events weren't logged properly.

App Indexing version 16.0.1

Authentication version 16.0.2

  • Small fixes for error handling.

Update - May 24, 2018

google-services plugin 4.0.1

  • Resolves a null pointer exception during dependency tree analysis introduced in 4.0.0.

Update - June 12, 2018


  • Your app gradle file now has to explicitly list com.google.firebase:firebase-core as a dependency for Firebase services to work as expected.

  • Unless otherwise specified, services' major version increases were made to correct version range issues in their version 15 releases.

google-services plugin 4.0.0

  • The plugin no longer injects a firebase-core dependency under any circumstances.
  • The plugin is no longer compatible with any Firebase services below version 14.0.0.
  • The plugin no longer supports ranged version checking.
  • The plugin is now more stable when used on instant apps and apps that use databinding.

strict-version-matcher plugin 1.0.1

  • The plugin is now more stable when used on instant apps and apps that use databinding.

Cloud Firestore version 17.0.1

Realtime Database version 16.0.1

  • Added Nullability annotations to all public API classes/methods.

Authentication version 16.0.1

  • Added an API to facilitate testing phone authentication.

  • Removed the deprecated getToken() method from the FirebaseUser class. Switch to getIdToken() instead, if you haven't already.

Cloud Storage version 16.0.1

ML Kit version 16.0.0

  • Improved custom model downloading logic to handle user cancellation.

Cloud Messaging version 17.0.0

  • Added getPriority() and getOriginalPriority() methods to RemoteMessage.

  • The methods subscribeToTopic() and unsubscribeFromTopic() on FirebaseMessaging now return a Task that can be used to see when the request has completed.

SDK Update - May 8, 2018

ML Kit version 15.0.0

  • ML Kit for Firebase is now available for public beta. To learn more, read ML Kit for Firebase.

Performance Monitoring version 15.2.0

  • Performance Monitoring automatic traces now include screen traces, which monitor slow and frozen frames.

  • The incrementCounter() method of the Trace class is now deprecated. Use the new incrementMetric() method instead.

SDK Update - May 2, 2018


  • Firebase Android SDKs now have independent version numbers, allowing for more frequent, flexible updates.

  • If your app has a dependency on com.google.firebase:firebase-core:15.0.0 as well as any of the following libraries:

    • com.google.android.gms:play-services-analytics
    • com.google.android.gms:play-services-appinvite
    • com.google.android.gms:play-services-tagmanager
    • com.google.firebase:firebase-analytics
    • com.google.firebase:firebase-crash
    • com.google.firebase:firebase-dynamic-links
    • com.google.firebase:firebase-messaging

    You will need to update the version of the latter dependency to 15.0.2. This addresses the issue where version 3.3.0 of the Google Services Gradle plugin reports: The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[15.0.0,15.0.0], [15.0.2,15.0.2]], but resolves to 15.0.2...

Analytics version 15.0.2

  • Updates for auto-initialization and interoperability with other Firebase libraries.

Authentication version 15.1.0

  • Updates for auto-initialization and interoperability with other Firebase libraries.

  • Added the updateCurrentUser() method to the FirebaseAuth class, to allow copying FirebaseUsers from one instance to another.

Cloud Messaging version 15.0.2

  • Updates for auto-initialization and interoperability with other Firebase libraries.

Cloud Firestore version 16.0.0

  • Replaced the DocumentListenOptions and QueryListenOptions classes with a MetadataChanges enum. Instead of calling addSnapshotListener() with either of those classes, use the enum:
    addSnapshotListener(MetadataChanges.INCLUDE, ...)

  • QuerySnapshot.getDocumentChanges() now optionally takes a MetadataChanges enum. By default, metadata-only document changes are suppressed in getDocumentChanges(), even when listening to a query with MetadataChanges.INCLUDE.

  • Added the ability to control whether DocumentReference.get() and Query.get() should fetch from server only, cache only, or attempt server and fall back to the cache. By default, both methods still attempt server and fall back to the cache.

  • Cloud Firestore no longer ProGuards its dependencies, GRPC and protobuf. As a result, if you use GRPC or protobuf independent of Firestore, your app will now only include one copy of either library in its final APK. If you don't use ProGuard, your app size will increase by roughly 1MB. You can avoid this increase by running ProGuard on your release builds to remove unneeded methods. To learn how, see Shrink Your Code and Resources.

  • Added a ServerTimestampBehavior enum to control how DocumentSnapshots return unresolved server timestamps.

Crash Reporting version 15.0.2

  • Firebase Crash Reporting is now deprecated. To monitor crashes in your apps, migrate to Firebase Crashlytics. To learn how, read Upgrade from Crash Reporting.

Cloud Storage version 15.0.2

Performance Monitoring version 15.1.0

  • Updates for auto-initialization and interoperability with other Firebase libraries.

SDK Version 15.0.0 - April 12, 2018



SDK Version 12.0.1 - March 28, 2018

This update fixes issues introduced in the v12.0.0 release. For more details, see the Google Play services 12.0.1 release notes.

SDK Version 12.0.0 - March 20, 2018


  • Added passwordless sign-in through email link as a new sign-in mechanism.
  • Play Games is now supported as a sign-in provider. See the integration guide.

Cloud Messaging

  • Added the setAutoInitEnabled() and isAutoInitEnabled() methods to the FirebaseMessaging class to set and check whether FCM auto-initializes. Also added firebase_messaging_auto_init_enabled manifest metadata flag for setting auto-initialization preferences from the Android Manifest file.
  • Fixed a regression that caused custom notification icons to be rejected on Android 8.0.

Cloud Firestore

  • Firestore now cleanly shuts down idle write streams.
  • When the includeMetadataChanges option is enabled, snapshot listeners now receive an event, withsnapshot.metadata.isFromCache, if the SDK loses or regains its connection to the backend. The event is true when the connection is lost and false when it's regained.
  • DocumentSnapshot.getData() now returns null instead of throwing an exception when you use the method on non-existant documents. If you'd like to minimize number of null-checks in your code, use the new QueryDocumentSnapshot class instead.
  • Added the disableNetwork() and enableNetwork() methods to the FirebaseFirestore class, allowing for explicit network management.
  • Firestore queries can now accept Timestamp as an argument.
  • Fixed a regression that sometimes resulted in an "OnlineState could not affect limbo documents" assertion crash when a client lost its network connection.

Cloud Functions for Firebase Client SDK

SDK Version 11.8.0 - December 18, 2017

App Indexing


  • Added the ability to use Google Play Games as a sign-in provider in your Firebase Project.

Cloud Messaging

  • Fixed an internal NullPointerException caused by a call to NetworkInfo.isConnected().
  • Fixed compatibility issues with Google Play services version 12.0.
  • Added a check that keeps track of recently received messages and ignores any duplicates.

Performance Monitoring

SDK Version 11.6.2 - November 27, 2017

Cloud Firestore

  • Firestore now retries requests more often before considering a client offline.


  • Streaming uploads that fail validation include the original error in their stacktrace.
  • Firebase Storage can take advantage of the total available system memory to increase upload performance.

SDK Version 11.6.0 - November 6, 2017

App Indexing

  • Added PhotographBuilder and VideoObjectBuilder indexable builders to Firebase App Indexing API.
  • Added Scope metadata attribute to allow developers to explicitly opt-in so that the inxexable can be uploaded to the cloud and shared with other devices.


  • Added the resetAnalyticsData() method to allow developers to clear all Analytics data associated with an app user on the device and to reset their app instance id.


Cloud Messaging

  • If your app crashes or doesn't respond, Firebase Cloud Messaging (FCM) now tries to redeliver missed messages after a short delay. This change is automatic, and doesn't require any updates to your code.
  • FirebaseInstanceIdInternalReceiver has been removed from the SDK's automatically-merged AndroidManifest. If you weren't using Gradle or its manifest automerging feature and were adding this receiver manually, you can now remove it.
  • Improved FCM token fetch logic so that the FCM token is now created faster and with less battery drain.

Dynamic Links

  • Fixed an undercounting issue where dynamic_link_app_open wasn't being logged to Google Analytics when the app was opened after being updated due to a link.
  • Deprecated Warning.getCode(). Warning.getMessage() now returns all necessary information about the warning and how to correct it.
  • Clarified documentation for DynamicLink.Builder.setLongLink() to indicate that it's used to shorten a preconstructed long FDL.

Cloud Firestore

  • Added support for deserializing field types with wildcard generic parameters (e.g. kotlin.Map).
  • Improved validation of nested arrays to allow for indirect nesting.
  • You can now use FieldValue.delete() with SetOptions.merge().

Performance Monitoring

  • Separated rate limiting for TraceMetric and NetworkRequestMetric:
    • TraceMetric: limited to 300 logs per 10 minutes in foreground and 30 logs per 10 minutes in background.
    • NetworkRequestMetric: limited to 700 logs per 10 minutes in foreground and 70 logs per 10 minutes in background.

SDK Version 11.4.2 - October 3, 2017

Cloud Firestore

SDK Version 11.4.0 - September 18, 2017

App Indexing


  • You can now redirect users after email-based actions, like password resets or email verifications, by providing an app link with custom state to the new ActionCodeSettings class.

  • You can now specify a language for emails and text messages sent from your apps using useAppLanguage() or setLanguageCode().

Test Lab

  • Adjusted the IP addresses used by Test Lab devices. If your app works with digital advertising providers, contact them to make sure their filters are up-to-date. For the new addresses, see Test Lab and mobile advertising.

SDK Version 11.2.2 - September 05, 2017

Performance Monitoring

  • Improved logging to be more actionable and describe why a performance network request metric is not recorded when it occurs.
  • Increased character limits for trace and counter names. Names can now be up to 100 characters.

SDK Version 11.2.0 - August 14, 2017

App Indexing

  • The Firebase App Indexing API now sends updates for the on-device index through broadcasts to apps instead of starting a service. This change improves compatibility on Android O. See the updated instructions to modify your personal content indexing implementation.

Realtime Database

Dynamic Links


  • You can now clear metadata for your Storage objects by setting the values in StorageMetadata.Builder to null.
  • The stack trace for cancelled downloads now points to the code location where the cancellation was requested.

SDK Version 11.0.4 - July 26, 2017

Cloud Messaging

  • Fixed a regression causing apps running on secondary user profiles and Android For Work user profiles to not receive the FCM registration token.

Performance Monitoring

  • Fixed instances where app startup times included background thread time not caused by interactions.

SDK Version 11.0.2 - June 29, 2017

Performance Monitoring

  • Fixed a variety of minor issues, most of which relate to HTTP/S network request monitoring.

Crash Reporting

  • Reduced the resources required to initialize Crash Reporting.

June 19, 2017

Test Lab

  • Game test loop and Robo test now support the App Licensing service offered by Google Play for apps in the production channel. To successfully check licensing when testing your app with Test Lab, you must publish your app to the production channel in the Play store. To test your app in the alpha or beta channel using Test Lab, remove the licensing check before uploading your app to Test Lab.

SDK Version 11.0.0 - June 7, 2017

Firebase SDK for Android

  • Added the setProjectId() method to the FirebaseOptions class. This method sets the Firebase project or Google Cloud project ID for an app.


  • The AppMeasurementJobService class is now available. It provides a [JobService](https://developer.android.com/reference/android/app/job/JobService.html) to Analytics.
  • Analytics now supports analytics for Android Instant Apps. Specifically, instant apps will log a first_visit event instead of a first_open event and a first_visit_time event instead of a first_open_time event.
  • The following events is now reserved as part of the integration of Analytics with AdMob : ad_impression, ad_click, ad_query ad_exposure, adunit_exposure, and ad_activeiew.
  • The screen_view event is now reserved and is logged as a result of screen-tracking. To learn more about screen-tracking, see Track Screenviews.


  • Firebase Authentication Using Phone Numbers is now available!

    • Added the getPhoneNumber() and updatePhoneNumber() methods to the FirebaseUser class, and also added the getPhoneNumber() method to the UserInfo class. These methods get and update the phone numbers of users.
    • Added the PhoneAuthCredential, PhoneAuthProvider, PhoneAuthProvider.ForceResendingToken, and PhoneAuthProvider.OnVerificationStateChangedCallbacks classes to support authentication using phone numbers.
    • To learn more, see Authenticate with Firebase using Phone Numbers on Android.
  • Added the getIdToken()method to the FirebaseUser class. This method gets an Authentication ID token for the user, and replaces the getToken()method, which is now deprecated.

  • Added the reauthenticateAndRetrieveData()method to the FirebaseUser class. This method re-authenticates a user and returns the profile data for that user's account.

  • Added the AdditionalUserInfo class. This class provides storage for ID provider-specific user data for the following ID providers: Facebook, GitHub, Twitter and Google.

  • Added the getAdditionalUserInfo() method to the AuthResult class. This method returns ID provider-specific user data contained in an AdditionalUser object.

  • Added the FirebaseAuth.IdTokenListener class. This class creates a listener that is called when the ID token changes, such as when a user signs in or signs out.

  • Added the addIdTokenListener() and removeIdTokenListener() methods to the FirebaseAuth class. These methods register or unregister FirebaseAuth.IdTokenListener objects.

  • Added the FirebaseAuthEmailException class. This class represents an exception that results from attempting to send an email message using Firebase Authentication.

  • Added the OAuthProvider class. This class represents the login authentication provider for a generic OAuth2 provider.

Crash Reporting

  • Added the isCrashCollectionEnabled() method to the FirebaseCrash class. This method determines whether Crash Reporting is enabled or disabled.
  • Added the setCrashCollectionEnabled() method to the FirebaseCrash class. This method enables or disables Crash Reporting.

App Indexing

  • The AndroidAppUri class is now available in the com.google.firebase.appindexing package. This class also exists in the deprecated com.google.android.gms.appindexing package.
  • Added the AggregateRatingBuilder, GeoShapeBuilder, LocalBusinessBuilder, PostalAddressBuider, ReservationBuilder and RestaurantBuilder classes. These classes construct various types of Indexable objects. To learn more about the data contained in these Indexable objects, see AggregateRating, GeoShape, LocalBusiness, PostalAddress, Reservation, and Restaurant.
  • Added the aggregateRatingBuilder(), geoShapeBuilder(), localBusinessBuilder(), postalAddressBuilder(), reservationBuilder() and restaurantBuilder() methods to the Indexables class. These methods create various types of Indexable objects.

Dynamic Links

  • Added the DynamicLink and DynamicLink.Builder classes. These classes are used for constructing Dynamic Links, with a set of methods for setting various types of Dynamic Link parameters. Also added the following related classes:

    • DynamicLink.IosParameters and DynamicLink.IosParameters.Builder
    • DynamicLink.AndroidParameters and DynamicLink.AndroidParameters.Builder
    • DynamicLink.GoogleAnalyticsParameters and DynamicLink.GoogleAnalyticsParameters.Builder
    • DynamicLink.ItunesConnectAnalyticsParameters and DynamicLink.ItunesConnectAnalyticsParameters.Builder
    • DynamicLink.SocialMetaTagParameters and DynamicLink.SocialMetaTagParameters.Builder
  • Added the FirebaseDynamicLinks class. This class provides access to Dynamic Links that are received by an app at launch.

  • Added the PendingDynamicLinkData class. This class provides accessor methods to Dynamic Link data.

  • Added the ShortDynamicLink, ShortDynamicLink.Suffix,and ShortDynamicLink.Warning classes. These classes provide short dynamic links, an option for generating short dynamic link URLs, and warnings related to short Dynamic Links.


  • Added the FirebaseAppInvite class. This class replaces the AppInvite class, which is now deprecated.

SDK Version 10.2.6 - May 17, 2017

Performance Monitoring

Test Lab

  • Performance metrics are now available when you run tests using Firebase Test Lab for Android on physical devices with API level 21 and higher. The following metrics are available:
    • For all apps: CPU usage, memory usage, and network activity (send/receive)
    • For games that use the SurfaceView class, frames per second (fps) are also measured.
  • Firebase Test Lab now has beta support for testing Android games created using game frameworks (for example, Unity) if those games include game test loops. To learn more, see Firebase Test Lab Game Test Loops.

Cloud Messaging

  • Added support for Android O notification channels. Android clients can specify a default notification channel in the application manifest which will be used if the downstream message does not contain a notification_channel parameter.

SDK Version 10.2.4 - April 28, 2017

Cloud Storage

  • The getParent() method now returns null if called on the root of a Storage path, aligning the behavior of the Android SDK with other Storage SDKs.
  • The getDownloadURL() method now correctly escapes spaces in URLs as %20, rather than +.

SDK Version 10.2.1 - March 21, 2017

Cloud Messaging

  • The Firebase Android SDK (v10.2.1) includes updates to provide compatibility with Android O Developer Preview 1. The most significant updates are internal changes to the Firebase Cloud Messaging (FCM) libraries and a change in the guaranteed lifecycle of FCM callbacks to 10 seconds, after which Android O considers such callbacks eligible for termination. For more information on handling FCM messages on Android O, see The Firebase Blog.

SDK Version 10.2 - February 15, 2017


  • Added the ability to log events used to supply referral details of a re-engagement campaign to the FirebaseAnalytics.Event class and related parameters to the FirebaseAnalytics.Param class.
  • Added the ability to get app instance IDs using the getAppInstanceId() method in the FirebaseAnalytics class.

Realtime Database

  • Added the ability to get the Firebase Database instance for a given URL using the getInstance() method in the FirebaseDatabase class.

Test Lab

  • Robo test can now complete sign-in screens that use test account credentials that you provide when you configure your test matrix, both in the Firebase console, and using the gcloud command-line.
  • Added support for saving test matrix templates for future use in the Firebase console.

February 8, 2017

Test Lab

  • Low-resolution medium DPI (MDPI) virtual devices are now available in Test Lab. You can run Robo test and instrumentation tests on your app more quickly with the Test Lab generic low-resolution MDPI phone virtual device than with other virtual devices. The MDPI virtual device is available on API levels 23, 24 and 25. To use this device from the gcloud command-line interface, use the NexusLowRes model ID.

February 7, 2017

Crash Reporting

  • The Crash Reporting gradle plugin for Android version 1.0.5 is now available. This update adds the ability to specify Gradle properties to use when uploading a ProGuard mapping file, and also removes the requirement to use a google-services.json file in your app. To learn more, see Uploading ProGuard Mapping Files with Gradle.

January 17, 2017

  • The Firebase console now lets you select the specific device and Android API level combinations to use when testing your app. This makes it easy to focus your testing; for example, when you are validating a bug fix.

December 15, 2016

  • The Crash Reporting gradle plugin for Android is now available. This plugin simplifies the process of uploading ProGuard mapping files for the deobfuscation of stack traces. To learn more, see Uploading ProGuard Mapping Files with Gradle.

SDK Version 10.0 - November 21, 2016


  • Increased the maximum length of event names and parameter name to 40 characters, and the maximum length of string parameter values to 100 characters.


  • Added APIs to support out-of-band codes that can be used to reset passwords, verify identity using email, and recover access to email. To learn more, see the API reference documentation for the ActionCodeResult and FirebaseAuthActionCodeException classes.

Firebase Test Lab

  • Test Lab provides virtual devices running the latest build of Android 7.1 Preview. You can run tests on these devices as often as you need, at no cost, until the end of the Developer Preview in December. To learn more, see Test the Android 7.1 Preview with Firebase Test Lab.

App Indexing

  • The new Firebase App Indexing SDK lets apps add a personal content index and log user actions, in addition to making your app discoverable by Google Search. To use the new App Indexing SDK, update your Gradle dependency to com.google.firebase:firebase-appindexing:10.0.0. For more information, see the Firebase App Indexing Introduction and the Firebase App Indexing API Reference.

Cloud Messaging

  • Fixed an issue that caused extra alarms to be incorrectly set, resulting in crashes with Too Many Alarms in the stack trace on some Samsung devices.

SDK Version 9.8 - October 24, 2016


  • Added screen tracking support. Each app's current Activity is automatically tracked. The current screen is tracked with the firebase_screen_class parameter with every logged event, which provides valuable context. In addition to automatic screen tracking, you can manually track screens using the FirebaseAnalytics#setCurrentScreen method. This adds the firebase_screen parameter to every event logged while those screens are visible to app users.

Cloud Messaging

  • Improved the reliability of message delivery to Android Wear devices that are paired with an iOS device.
  • Added the ability to customize the default notification icon and color using AndroidManifest.xml metadata.


  • Added the StorageTask#addOnCompleteListener API that informs you when a Task completes or fails, and the StorageTask#continueWith API that supports creating app logic with chained dependencies.
  • Fixed an issue that could cause an exception when uploads or downloads time out when a device's WiFi is off.

SDK Version 9.6 - September 21, 2016


  • Added tracking for the source of app install referrals when an app with Analytics is installed from the Play Store.
  • Existing users who update to an Analytics-enabled version of an app are no longer included in first_open metrics. This correction could cause a drop in first_open metrics.
  • Conversion events are now uploaded within seconds of being logged.

Cloud Messaging

  • Fixed an issue that caused apps using Cloud Messaging to crash due to a race condition, and that resulted in a NullPointerException and a ConcurrentModificationException.


  • Added new API methods, FirebaseUser#sendEmailVerification() and FirebaseUser#isEmailVerified() to verify a user's email address.

Realtime Database

  • Fixed an issue that could cause Realtime Database access tokens to expire, resulting in Authentication failed: invalid_token errors.
  • Fixed a hardAssert failed exception that could occur when offline persistence is enabled and certain startAt() and endAt() queries were used.
  • Fixed an issue that caused Android apps to cancel unsent transactions when disconnecting from Firebase Realtime Database, rather than queuing them to be sent later.
  • Fixed an issue where passing a derived class to DatabaseReference#setValue() did not correctly save the properties from the superclass.
  • Updated the DatabaseReference#updateChildren() method to accept Java objects (POJOs), providing parity with the handling of these objects by the setValue()method.

Dynamic Links

  • Analytics events are now automatically logged when users open your app from a Dynamic Link, open your app for the first time from a Dynamic Link, and update your app from a Dynamic Link.

SDK Version 9.4 - August 1, 2016

Cloud Messaging

  • Expanded gestures are now supported for messages, allowing the Android UI to display multiple lines when the body of a notification exceeds a single line.
  • Fixed a bug that causes a NullPointerException in some multi-process configurations.
  • RemoteMessage#getMessageId() now returns the correct message-id for received messages. Previously, it returned null.

Remote Config

  • Updated the handling of Remote Config data (including parameters and metadata such as fetch history) to remove app data when an app is un-installed or when the app user deletes app data.
  • Added the getKeysByPrefix() API method to allow developers to find parameter keys based on a key prefix.

Firebase console

  • The following unused fields are no longer included in google-services.json files: cloud_messaging_service, google_signin_service and ads_service.

SDK Version 9.2 - June 27, 2016


  • Minor improvements to error handling and error messages.

Crash Reporting

  • Fixed an issue that caused apps that call FirebaseCrash.log, FirebaseCrash.logcat and FirebaseCrash.report to crash if installed on a device that does not have Google Play services installed.

Realtime Database

  • You can now use a new @PropertyName attribute to specify the name to use when serializing a field from a Java model class to the Database. This replaces the @JsonProperty attribute.

Dynamic Links

  • Firebase SDK for Android:
    • Google Analytics for Firebase now logs all app open events driven from user clicks on Dynamic Links.