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.

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 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 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 Fixed a variety of minor issues, most of which relate to HTTP/S network request monitoring.

Crash Reporting

  • fixed Reduced the resources required to initialize Crash Reporting.

June 19, 2017

Test Lab

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

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

Analytics

  • feature The AppMeasurementJobService class is now available. It provides a [JobService](https://developer.android.com/reference/android/app/job/JobService.html) to Analytics.
  • feature 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.
  • feature 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.
  • feature 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

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

  • feature Added the reauthenticateAndRetrieveData()method to the FirebaseUser class. This method re-authenticates a user and returns the profile data for that user's account.
  • feature Added the AdditionalUserInfo class. This class provides storage for ID provider-specific user data for the following ID providers: Facebook, GitHub, Twitter and Google.
  • feature Added the getAdditionalUserInfo() method to the AuthResult class. This method returns ID provider-specific user data contained in an AdditionalUser object.
  • feature 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.
  • feature Added the addIdTokenListener() and removeIdTokenListener() methods to the FirebaseAuth class. These methods register or unregister FirebaseAuth.IdTokenListener objects.
  • feature Added the FirebaseAuthEmailException class. This class represents an exception that results from attempting to send an email message using Firebase Authentication.
  • feature Added the OAuthProvider class. This class represents the login authentication provider for a generic OAuth2 provider.

Crash Reporting

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

App Indexing

  • changed 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.
  • feature 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.
  • feature Added the aggregateRatingBuilder(), geoShapeBuilder(), localBusinessBuilder(), postalAddressBuilder(), reservationBuilder() and restaurantBuilder() methods to the Indexables class. These methods create various types of Indexable objects.

Dynamic Links

  • feature 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
  • feature Added the FirebaseDynamicLinks class. This class provides access to Dynamic Links that are received by an app at launch.

  • feature Added the PendingDynamicLinkData class. This class provides accessor methods to Dynamic Link data.
  • feature 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

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

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

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

  • fixed 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.
  • fixed The getDownloadURL() method now correctly escapes spaces in URLs as %20, rather than +.

SDK Version 10.2.1 - March 21, 2017

Cloud Messaging

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

  • feature 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.
  • feature Added the ability to get app instance IDs using the getAppInstanceId() method in the FirebaseAnalytics class.

Realtime Database

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

Test Lab

  • feature 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.
  • feature Added support for saving test matrix templates for future use in the Firebase console.

February 8, 2017

Test Lab

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

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

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

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

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

  • feature 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 for Android

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

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

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

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

Storage

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

  • feature Added tracking for the source of app install referrals when an app with Analytics is installed from the Play Store.
  • fixed 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.
  • changed Conversion events are now uploaded within seconds of being logged.

Cloud Messaging

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

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

Realtime Database

  • fixed Fixed an issue that could cause Realtime Database access tokens to expire, resulting in Authentication failed: invalid_token errors.
  • fixed Fixed a hardAssert failed exception that could occur when offline persistence is enabled and certain startAt() and endAt() queries were used.
  • fixed 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 Fixed an issue where passing a derived class to DatabaseReference#setValue() did not correctly save the properties from the superclass.
  • changed Updated the DatabaseReference#updateChildren() method to accept Java objects (POJOs), providing parity with the handling of these objects by the setValue()method.

Dynamic Links

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

  • changed 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 Fixed a bug that causes a NullPointerException in some multi-process configurations.
  • fixed RemoteMessage#getMessageId() now returns the correct message-id for received messages. Previously, it returned null.

Remote Config

  • fixed 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.
  • feature Added the getKeysByPrefix() API method to allow developers to find parameter keys based on a key prefix.

Firebase console

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

  • fixed Minor improvements to error handling and error messages.

Crash Reporting

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

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