Firebase C++ 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 C++ Project.

Version 3.1.0 - March 8, 2017

Storage

  • changed Added an overload for Storage::GetInstance() that accepts a gs://... URL, so you can use Cloud Storage with multiple buckets.

Invites

  • fixed (Android) Fixed an issue where invitations with empty links would fail to be received.

Version 3.0.0 - February 27, 2017

  • changed Renamed and deprecated methods that were inconsistent with the Google C++ Style Guide. Deprecated methods will be removed in a future release (approximately 2-3 releases from now).

Analytics

  • changed Added SetCurrentScreen().

Authentication

  • fixed Fixed a race condition accessing user data in callbacks.
  • changed (Android) Added is_valid() to check if a credential returned by GetCredential() is valid.

Invites

  • changed (Android) Added a Fetch() function to fetch incoming invitations at times other than application start. You must call this on Android when your app returns to the foreground (on iOS, this is handled automatically).
  • fixed (iOS) Fixed regression since 2.1.1 that broke Invites if the AppDelegate did not implement the open URL method.

FCM

  • changed Added a field to firebase::messaging::Message specifying whether the message was received when the app was in the background.
  • changed (Android) Added an AAR file containing the Android manifest changes needed for receiving notifications. You can add this to your project instead of modifying the manifest directly.
  • fixed (iOS) Fixed regression since 2.1.1 that broke FCM on iOS 8 & 9 when an AppDelegate did not implement remote notification methods.

Remote Config

  • changed Added support for initializing Remote Config defaults from firebase::Variant values, including binary data.

Version 2.1.3 - February 6, 2017

  • fixed Fixed a potential deadlock when running callbacks registered via firebase::Future::OnCompletion.

Authentication

  • fixed (Android) Fixed an error in firebase::auth::User::PhotoUri.

FCM

  • fixed (iOS) Removed hard dependency on Xcode 8.
  • fixed (Android) Fixed an issue where the application would receive an empty message on startup.

Version 2.1.2 - January 20, 2017

AdMob

  • fixed (Android) Fixed an issue in firebase::admob::InterstitialAd that caused a crash after displaying multiple interstitial ads.

Version 2.1.1 - January 18, 2017

Authentication

  • fixed (Android) Fixed an issue that caused a future to never complete when signing in while a user is already signed in.

FCM

  • fixed (iOS) Fixed an issue with method swizzling that caused some of the application's UIApplicationDelegate methods to not be called.
  • fixed (iOS) Fixed an issue which caused a crash when initializing the library when building with Xcode 8 for iOS 10.

Invites

  • fixed (iOS) Fixed an issue with method swizzling that caused some of the application's UIApplicationDelegate methods to not be called.

Version 2.1.0 - December 9, 2016

Storage

  • feature Added a C++ client library for Storage. To get started, see Get Started with Cloud Storage for C++.
  • issue (Android) Pausing and resuming storage operations will cause the data transfer to fail with the error code kErrorUnknown.

Authentication

  • fixed Added a check for saved user credentials when Authentication is initialized.

Version 2.0.0 - November 7, 2016

AdMob

  • changed Added support for AdMob Native Express Ads.

Authentication

  • changed Added the AuthStateListener class that provides notifications when a user is logged in or logged out.

Realtime Database

Invites

Version 1.2.1 - October 3, 2016

Cloud Messaging

  • fixed (Android) Fixed a bug that prevented apps from terminating properly.
  • fixed (iOS) Added missing copy constructor implementation in iOS and stub libraries.

Version 1.2.0 - September 21, 2016

  • feature (Android) Added firebase::ModuleInitializer, a helper class to initialize Firebase modules and handle any missing dependency on Google Play services.

Cloud Messaging

  • feature Added firebase::messaging::Notification and associated methods to allow retrieval of the contents of a notification.
  • feature (iOS) Added support for iOS 10 notifications.
  • fixed (Android) Fixed an issue that caused a crash if Cloud Messaging was initialized before the native library was loaded.

Authentication

  • feature (Android) Added new API methods, User::SendEmailVerification() and User::EmailVerified() to verify a user's email address.

Remote Config

  • fixed Added GetKeys() and GetKeysByPrefix() methods to allow developers to find parameter keys based on a key prefix.

Invites

  • fixed (iOS) Fixed an issue that could potentially crash an app during shutdown when the InvitesReceiver::Fetch() method is pending.
  • fixed Fixed an issue that occurred when initializing InvitesSender and InvitesReceiver simultaneously.

AdMob

  • feature Added the Rewarded Video Mediation feature to the C++ SDK. For more information, see the Rewarded Video C++ guide.
  • feature You can now pass your AdMob App ID to firebase::admob::Initialize() to help reduce latency for the initial ad request.
  • changed (iOS) You must now call BannerView::Show() to display an ad. Previously, this was only required on Android.
  • fixed Fixed an issue where BannerView::Listener() received an incorrect bounding box.

Version 1.1.0 - August 1, 2016

App

  • feature Added utility functions to check whether Google Play services is available. See google_play_services::CheckAvailability() and google_play_services::MakeAvailable() for more information.
  • changed App::Create() will no longer check for Google Play services, nor will it return nullptr. It will always return an App, and the individual Firebase features will check for Google Play services at initialization if required.

Analytics

  • fixed Fixed a crash that occurs when logging string events.

Authentication

  • changed firebase::auth::GetAuth() now has an option to return a result that indicates whether initialization was successful, and to return nullptr if initialization failed.

Firebase Cloud Messaging

  • changed firebase::messaging::Initialize() now returns a result that indicates whether initialization was successful.

Invites

  • changed Added firebase::invites::Initialize(), which you must call once prior to creating InvitesSender or InvitesReceiver instances. This function returns a result that indicates whether initialization was successful.
  • issue If you call InvitesReceiver::Fetch() or InvitesReceiver::ConvertInvitation() without first calling firebase::invites::Initialize(), the operation will never complete. To work around this issue, ensure that firebase::invites::Initialize() is called once before creating any InvitesReceiver instances.
  • issue If you create InvitesSender and then InvitesReceiver, the InvitesReceiver may fail to connect, and be unable to fetch results. To work around this issue, you can delay creating the InvitesSender until after the future returned by InvitesReceiver::Fetch() has completed.

Remote Config

  • changed firebase::remote_config::Initialize() now returns a result that indicates whether initialization was successful.

AdMob

  • changed firebase::admob::Initialize() now returns a result that indicates whether initialization was successful.

Version 1.0.1 - June 27, 2016

This update includes a variety of documentation updates and minor bug fixes. This update primarily fixes bugs in the AdMob portion of the C++ SDK. These fixes are described below:

  • fixed Modified firebase::App to check for the required version of Google Play services on creation to prevent firebase::App creation from failing if a user's device is out of date. If Google Play services is out of date, a dialog will prompt the user to install a new version. With the previous version of this SDK, you needed needed to manually check for an up-to-date Google Play services SDK using GoogleApiClient.

AdMob

  • fixed Fixed a potential deadlock when using SetListener from a notification callback in firebase::admob::InterstitialAd and firebase::admob::BannerView on iOS.
  • fixed Fixed a race condition on destruction of admob::BannerView on Android.
  • fixed Fixed Future handle leak. An internal memory leak occurred for objects or modules that use futures for the lifetime of the object or module. For example, during the lifetime of a BannerView object, each call to a method which returns a Future could potentially allocate memory which wouldn't be reclaimed until the BannerView object is destroyed.

Send feedback about...

Need help? Visit our support page.