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.3
Ads com.google.firebase:firebase-ads:15.0.1
Analytics com.google.firebase:firebase-analytics:16.0.3
App Indexing com.google.firebase:firebase-appindexing:16.0.1
Authentication com.google.firebase:firebase-auth:16.0.3
Cloud Firestore com.google.firebase:firebase-firestore:17.1.0
Cloud Functions com.google.firebase:firebase-functions:16.1.0
Cloud Messaging com.google.firebase:firebase-messaging:17.3.2
Cloud Storage com.google.firebase:firebase-storage:16.0.2
Crash Reporting com.google.firebase:firebase-crash:16.2.0
Crashlytics com.crashlytics.sdk.android:crashlytics:2.9.5
Dynamic Links com.google.firebase:firebase-dynamic-links:16.1.1
Invites com.google.firebase:firebase-invites:16.0.3
In-App Messaging com.google.firebase:firebase-inappmessaging:17.0.1
In-App Messaging Display com.google.firebase:firebase-inappmessaging-display:17.0.1
ML Kit: Model Interpreter com.google.firebase:firebase-ml-model-interpreter:16.2.0
ML Kit: Vision com.google.firebase:firebase-ml-vision:17.0.0
ML Kit: Image Labeling com.google.firebase:firebase-ml-vision-image-label-model:15.0.0
Performance Monitoring com.google.firebase:firebase-perf:16.1.0
Realtime Database com.google.firebase:firebase-database:16.0.2
Remote Config com.google.firebase:firebase-config:16.0.0

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

General

  • 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

General

  • 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

Authentication

Storage

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

Authentication

  • 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

Authentication

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

Storage

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

Analytics

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

Authentication

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

Authentication

  • 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

Storage

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

Analytics

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

Authentication

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

Invites

  • 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

Analytics

  • 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

Analytics

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

Authentication

  • 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

Analytics

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

Storage

  • 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

Analytics

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

Authentication

  • 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

Authentication

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

Send feedback about...

Need help? Visit our support page.