To review release notes for the Firebase console and for other Firebase platforms and related SDKs, refer to the Firebase Release Notes.
To install this SDK, see Add Firebase to your C++ Project.
Version 12.5.0 - December 10, 2024
- (iOS) Update to Firebase Cocoapods version 11.6.0.
- (Android) Update to Firebase Android BoM version 33.7.0.
Version 12.4.0 - October 24, 2024
- (iOS) Update to Firebase Cocoapods version 11.4.2.
- (Android) Update to Firebase Android BoM version 33.5.1.
- (Android) Reduced minSdkVersion back to 23.
Analytics
- Add support for Parameters of Lists of Dictionaries, needed by some events such as ViewCart.
Authentication
- (Android) Setting
photo_url
to empty string with UpdateUserProfile clears the field, making it consistent with the other platforms.
Version 12.3.0 - September 26, 2024
- (iOS) Update to Firebase Cocoapods version 11.2.0.
- (Android) Update to Firebase Android BoM version 33.3.0.
- (Android) Updated minSdkVersion to 24.
FCM
- Changed SetListener to send the last token received before the listener was set.
Remote Config
- Fixed ConfigInfo fields to default to 0 when not throttled or having previous fetch data.
Version 12.2.0 - August 06, 2024
- (iOS) Update to Firebase Cocoapods version 11.0.0.
Version 12.1.0 - June 26, 2024
- (Android) Update to Firebase Android BoM version 33.1.1.
- (iOS) Update to Firebase Cocoapods version 10.28.1.
Analytics
- (iOS) Add support for
InitiateOnDeviceConversionMeasurementWithHashedEmailAddress
andInitiateOnDeviceConversionMeasurementWithHashedPhoneNumber
.
Google Mobile Ads
- The GMA C++ SDK is now deprecated. For more information, see the SDK documentation.
FCM
- (Android) Fixed a potential race condition on receiving messages after cleanup.
- (iOS) Fixed an issue with notifications being lost if they were received before Firebase Messaging was initialized.
Version 12.0.0 - May 07, 2024
- (Android) Update to Firebase Android BoM version 33.0.0.
- (Android) Updated minSdkVersion to 23, and targetSdkVersion and compileSdkVersion to 34.
- (iOS) Update to Firebase Cocoapods version 10.25.0.
- (iOS) Minimum iOS deployment target is now 13.0.
Authentication
- Removed methods that were deprecated in v11.0.0.
Cloud Storage
- (iOS) Fix invalid pointer in
StorageReference::GetFile()
when running in a secondary thread (#1570).
Version 11.10.0 - April 17, 2024
- (Android) Update to Firebase Android BoM version 32.8.1.
- (iOS) Update to Firebase Cocoapods version 10.24.0.
- (iOS, tvOS, Desktop) iOS, tvOS, and macOS SDKs are now built using Xcode 15.1.
Google Mobile Ads
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 11.2.0 and GoogleUserMessagingPlatform version 2.3.0.
- (Android) Updated dependency to play-services-ads version 23.0.0 and user-messaging-platform version 2.2.0.
Cloud Storage
- (Desktop) Removed 5-minute timeout for uploads and downloads.
Version 11.9.0 - March 13, 2024
- (Android) Update to Firebase Android BoM version 32.7.4.
- (iOS) Update to Firebase Cocoapods version 10.22.0.
Authentication
- Add
User::SendEmailVerificationBeforeUpdatingEmail
, a new method to verify and change the User's email. - Deprecate the older method of updating emails,
User::UpdateEmail
.
Version 11.8.0 - January 23, 2024
- (Android) Update to Firebase Android BoM version 32.7.1.
- (iOS) Update to Firebase Cocoapods version 10.20.0.
Dynamic Links
- The Dynamic Links SDK is now deprecated. See the support documentation for more information.
FCM
- (Android) Fixed minSdkVersion in the
firebase_messaging
.aar manifest file.
Version 11.7.0 - January 04, 2024
- (Android) Firebase C++ on Android is now built using Android API level 33 and Gradle 6.7.1.
- (Android) Update to Firebase Android BoM version 32.7.0.
- (iOS) Update to Firebase Cocoapods version 10.19.0.
Analytics
- Updated the consent management API to include new consent signals.
Authentication
- Fix a bug where an anonymous account can't be linked with email password credential. For background, see Email Enumeration Protection
Google Mobile Ads
- (Android) Updated dependency to play-services-ads version 22.6.0.
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 10.14.0.
Version 11.6.0 - October 17, 2023
- (iOS) Update to Firebase Cocoapods version 10.16.0.
Cloud Firestore
- Add support for disjunctions in queries (OR queries) (#1453).
Google Mobile Ads
- Added the User Messaging Platform (UMP) SDK, required for obtaining consent from users before showing ads. See the Get Started Guide for more information.
- (iOS) Added a new Cocoapod dependency for the UMP SDK: GoogleUserMessagingPlatform version 2.1.0.
- (Android) Added a new Maven package dependency for the UMP SDK: com.google.android.ump:user-messaging-platform version 2.1.0. This dependency will automatically be included if you include "gma" in the firebaseCpp.dependencies list in your build.gradle file.
Version 11.5.0 - September 19, 2023
- (iOS) Update to Firebase Cocoapods version 10.15.0.
- (Android) Update to Firebase Android BoM version 32.3.1.
- (Android) Made dynamic code files read only to comply with new Android 14 security requirements. This fixes a crash at API level 34+.
Analytics
- (iOS) Added InitiateOnDeviceConversionMeasurementWithPhoneNumber function to facilitate the on-device conversion measurement API.
Authentication
- Add Firebase Auth Emulator support. Set the environment
variable
USE_AUTH_EMULATOR=yes
(and optionallyAUTH_EMULATOR_PORT
, default 9099) to connect to the local Firebase Auth Emulator.
Google Mobile Ads
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 10.10.0.
- (Android) Updated dependency to play-services-ads version 22.3.0.
Version 11.4.0 - August 09, 2023
- (Android) Update to Firebase Android BoM version 32.2.2.
- (iOS) Update to Firebase Cocoapods version 10.13.0.
- (iOS) 32-bit iOS builds (i386 and armv7) are no longer supported.
- Add
FirebaseApp.GetApps()
, to return the list offirebase::App
instances.
Cloud Firestore
- Add support for disjunctions in queries (OR queries) (#1335).
Google Mobile Ads
- (Android) Fixed a crash when initializing GMA without a Firebase App.
Version 11.3.0 - July 17, 2023
- (Android) Update to Firebase Android BoM version 32.2.0.
- (iOS) Update to Firebase Cocoapods version 10.12.0.
- (Desktop) Fixed an error loading google-services.json and google-services-desktop.json from paths with international characters on Windows.
Authentication
- (Android) Fixed an issue where VerifyPhoneNumber's internal builder failed to create PhoneAuthOptions with certain compiler settings.
- (iOS) Fixed an issue where functions that return AuthResult were not including updated credentials when encountering errors.
Cloud Firestore
- (Android) Fix the intermittent global references exhaustion crash when working with documents with a large number of keys and/or large map and/or array fields. (#1364).
Google Mobile Ads
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 10.8.0.
- (Android) Updated dependency to play-services-ads version 22.2.0.
Remote Config
- (Desktop) Additional fix for handling of non-English time zone names on Windows.
Version 11.2.0 - June 21, 2023
- (Android) Update to Firebase Android BoM version 32.1.1.
- (iOS) Update to Firebase Cocoapods version 10.11.0.
App Check
- (Desktop) Fixed expired tokens being cached on 32-bit systems.
Google Mobile Ads
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 10.6.0.
Remote Config
- (Android) Fixed the ConfigUpdate classes being missing from the proguard files.
- (Desktop) Fixed handling of time zones on Windows when the time zone name in the current system language contains an accented character or apostrophe. This adds a requirement for applications using Remote Config on Windows desktop to link the "icu.dll" system library.
Version 11.1.0 - May 31, 2023
- (Android) Update to Firebase Android BoM version 32.1.0.
- (iOS) Update to Firebase Cocoapods version 10.10.0.
- (Android) Fix for deadlock within JniResultCallback, commonly seen within Messaging, but affecting other products as well.
Realtime Database
- (Desktop) Fixed a crash on Windows when the user's home directory contains non-ANSI characters (Unicode above U+00FF).
Cloud Firestore
- (Desktop) Fixed a crash on Windows when the user's home directory contains non-ANSI characters (Unicode above U+00FF).
- Added MultiDb support. (#1321).
Google Mobile Ads
- (Android) Updated dependency to play-services-ads version 22.1.0.
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 10.5.0.
Cloud Storage
- (Desktop) Fixed a crash on Windows when uploading files from a path containing non-ANSI characters (Unicode above U+00FF).
Version 11.0.1 - May 9, 2023
Authentication
- (iOS) Fixed a crash in
Credential::is_valid()
when anAuthResult
contains an invalid credential, such as when signing in anonymously.
Version 11.0.0 - May 04, 2023
- Update minimum supported C++ standard to C++14.
- (Android) Update to Firebase Android BoM version 32.0.0.
- (iOS) Update to Firebase Cocoapods version 10.9.0.
- (iOS, tvOS, Desktop) iOS, tvOS, and macOS SDKs are now built using Xcode 14.1.
AdMob
- Removed deprecated AdMob SDK. Please use the included Google Mobile Ads SDK ("GMA") instead.
App Check
- Adds support for Firebase App Check on Android, iOS, tvOS, and desktop platforms.
Authentication
- Deprecated a number of methods, appending
_DEPRECATED
to some of their names. This is a breaking change; you must either modify your code to refer to the_DEPRECATED
methods, or switch to the new methods, which have new return typesAuthResult
andUser
(rather thanSignInResult
andUser *
). The deprecated methods will be removed in the next major release of the Firebase C++ SDK. (Note: do not mix and match using the old and new methods or undefined behavior may result.)
Cloud Firestore
- Added
Query::Count()
, which fetches the number of documents in the result set without actually downloading the documents (#1207).
Google Mobile Ads
- (Android) Updated dependency to play-services-ads version 22.0.0.
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 10.4.0.
Remote Config
- (Android/iOS) Added support for real-time config updates. Use
the new
AddOnConfigUpdateListener
API to get real-time updates. ExistingFetch
andActivate
APIs aren't affected by this change. To learn more, see Get started with Firebase Remote Config.
Version 10.7.0 - March 28, 2023
- (Android) Update to Firebase Android BoM version 31.3.0.
- (iOS) Update to Firebase Cocoapods version 10.7.0.
- Add build time warning for C++11, since the next major release of the Firebase C++ SDK will set the new minimum C++ version to C++14.
Version 10.6.0 - March 7, 2023
- (Android) Update to Firebase Android BoM version 31.2.3.
- (iOS) Update to Firebase Cocoapods version 10.6.0.
Version 10.5.0 - February 14, 2023
- (Android) Update to Firebase Android BoM version 31.2.1.
- (iOS) Update to Firebase Cocoapods version 10.5.0.
Version 10.4.0 - January 24, 2023
- (Android) Update to Firebase Android BoM version 31.2.0.
- (iOS) Update to Firebase Cocoapods version 10.4.0.
- (Desktop) On macOS, in order to support sandbox mode, apps can
define a key/value pair for
FBAppGroupEntitlementName
in Info.plist. The value associated with this key will be used to prefix semaphore names created internally by the Firebase C++ SDK so that they conform with macOS sandbox requirements.
Analytics
- Add
analytics::SetConsent()
andanalytics::GetSessionId()
APIs.
Google Mobile Ads
- (Android) Updated dependency to play-services-ads version 21.4.0. This new version requires Multidex to be enabled in your Android builds.
- (iOS) Updated dependency to Google-Mobile-Ads-SDK version 9.14.0.
Version 10.3.0 - December 13, 2022
- (Android) Update to Firebase Android BoM version 31.1.1.
- (iOS) Update to Firebase Cocoapods version 10.3.0.
Version 10.2.0 - November 29, 2022
- (Android) Update to Firebase Android BoM version 31.1.0.
- (iOS) Update to Firebase Cocoapods version 10.2.0.
- (Desktop) Linux x86 libraries have been fixed.
NOTE
- The next major release of the Firebase C++ SDK will drop support for C++11, setting the new minimum C++ version to C++14. For more information please see our C++ Language Standard Support Criteria.
Version 10.1.0 - November 1, 2022
- (Android) Update to Firebase Android BoM version 31.0.2.
- (iOS) Update to Firebase Cocoapods version 10.1.0.
- Linux x86 builds are broken since C++ SDK version 9.6.0. A fix is in progress.
Cloud Firestore
- (Android) Reduce the number of JNI global references consumed when creating or updating documents (#1111).
Version 10.0.0 - October 13, 2022
- (Android) Update to Firebase Android BoM version 31.0.0.
- (iOS) Update to Firebase Cocoapods version 10.0.0.
- Remove unused headers for Performance Monitoring and Test Lab from the package.
AdMob
- (iOS) Temporarily pinned AdMob dependency to a special version of the Google-Mobile-Ads-SDK Cocoapod, "7.69.0-cppsdk3", to maintain compatibility with version 10.x of the Firebase iOS SDK.
Authentication
- (Android/iOS) Deprecating
PhoneAuthProvider::kMaxTimeoutMs
. The actual range is determined by the underlying SDK, ex.PhoneAuthOptions.Builder
from Android SDK.
Google Mobile Ads
- (iOS) Updated iOS dependency to Google Mobile Ads SDK version 9.11.0.1.
Version 9.6.0 - September 22, 2022
- (Android) Update to Firebase Android BoM version 30.5.0.
- (iOS) Update to Firebase Cocoapods version 9.6.0.
Google Mobile Ads
- (iOS) Updated iOS dependency to Google Mobile Ads SDK version 9.9.0.
- (Android) Updated Android dependency to Google Mobile Ads SDK version 21.2.0.
Version 9.5.0 - September 8, 2022
- (Android) Update to Firebase Android BoM version 30.4.0.
- (iOS) Update to Firebase Cocoapods version 9.5.0.
Version 9.4.0 - August 9, 2022
- (Desktop) Fixed an issue with embedded dependencies that could cause duplicate symbol linker errors in conjunction with other libraries (#989).
- (Android, iOS, Linux, macOS 32-bit) Fixed an integer overflow which
could result in a crash or premature return when waiting for a
Future
with a timeout (#1042).
Google Mobile Ads
- (iOS) Updated iOS dependency to Google Mobile Ads SDK version 9.7.0.
Version 9.3.0 - July 20, 2022
- (Android, Linux) Fixed a concurrency bug where waiting for an event with a timeout could occasionally return prematurely, as if the timeout had occurred (#1021).
Version 9.2.0 - June 28, 2022
- (Android) Switched over to Android BoM (Bill of Materials) for dependency versions. This requires Gradle 5.
Google Mobile Ads
- Added the Google Mobile Ads SDK with updated support for AdMob. See the Get Started Guide for more information.
AdMob
- The old AdMob SDK has been deprecated. Please update your app to use the new Google Mobile Ads SDK, which facilitates similar functionality.
Realtime Database
- (Desktop) If the app data directory doesn't exist, create it. This fixes an issue with disk persistence on Linux.
Cloud Firestore
- Added
TransactionOptions
to control how many times a transaction will retry commits before failing (#966).
FCM
- (Android) Fixed #973. Make sure all the resources are closed in
RegistrationIntentService
.
Version 9.1.0 - June 6, 2022
- (Android) Fixed a bug that required Android apps to include
com.google.android.gms:play-services-base
as an explicit dependency when only using AdMob, Analytics, Remote Config, or Messaging.
Analytics
- (iOS) Added InitiateOnDeviceConversionMeasurementWithEmail function to facilitate the on-device conversion measurement API.
Cloud Firestore
- (Desktop) On Windows, you must additionally link against the bcrypt and dbghelp system libraries.
Cloud Functions
- Add a new method
GetHttpsCallableFromURL
, to create callables with URLs other than cloudfunctions.net.
Version 9.0.0 - May 10, 2022
- (iOS) Firebase C++ on iOS is now built using Xcode 13.3.1.
- (Android) Firebase C++ on Android is now built against NDK version r21e.
- (Android) Support for gnustl (also known as libstdc++) has been removed. Please use libc++ instead. Android libraries have been moved from libs/android/ARCH/STL to libs/android/ARCH.
AdMob
- (iOS) Temporarily pinned AdMob dependency to a special version of the Google-Mobile-Ads-SDK Cocoapod, "7.69.0-cppsdk2", to maintain compatibility with version 9.x of the Firebase iOS SDK.
Analytics
- Removed deprecated event names and parameters.
Realtime Database
- (Desktop) Fixed a bug handling server timestamps on 32-bit CPUs.
Cloud Storage
- (Desktop) Set Content-Type HTTP header when uploading with custom metadata.
Version 8.11.0 - April 21, 2022
Realtime Database
- (Desktop) Upgrade LevelDb dependency to 1.23 (#886).
- (Desktop) Enabled Snappy compression support in LevelDb (#885).
Cloud Firestore
- (Desktop) Upgrade LevelDb dependency to 1.23 (#886).
- (Desktop) Enabled Snappy compression support in LevelDb (#885).
Version 8.10.0 - March 27, 2022
- (iOS) Fixed additional issues on iOS 15 caused by early initialization of Firebase iOS SDK.
Remote Config
- Fixed default
Fetch()
timeout being 1000 times too high.
Cloud Storage
- (Desktop) Added retry logic to PutFile, GetFile, and other operations.
Version 8.9.0 - January 25, 2022
- (iOS) Fixed an intermittent crash on iOS 15 caused by
constructing C++ objects during Objective-C's
+load
method. (#706) (#783) - Internal changes to Mutex class.
Version 8.8.0 - December 2, 2021
- Fixed a data race that could manifest as null pointer
dereference in
FutureBase::Release()
. (#747) - (iOS) iOS SDKs are now built using Xcode 12.4.
- (Desktop) macOS SDKs are now built using Xcode 12.4.
Authentication
- (Desktop) Fixed a crash in
error_code()
when a request is cancelled or times out. (#737)
Cloud Firestore
- Fix "unaligned pointers" build error on macOS Monterey (#712).
FCM
- (Android) Fixed crash during termination. (#739) (#745)
- (Android) Fixed crash during initialization. (#760)
Remote Config
- (Desktop) Fixed cache expiration time value used by
RemoteConfig::FetchAndActivate()
. (#767)
Version 8.7.0 - November 4, 2021
- (Android) Minimum SDK version is now 19.
- Variant double type now support 64-bit while saving to json. (#1133).
Analytics
- (tvOS) Analytics is now supported on tvOS.
Cloud Firestore
- Released to general availability for Android and iOS (desktop support remains in beta).
- (iOS) Fix a crash when
Transaction.GetSnapshotAsync()
was invoked afterFirebaseFirestore.TerminateAsync()
(#8760).
Version 8.6.0 - October 5, 2021
- (Desktop) MacOS SDKs are now built using Xcode 12.2, and include support for ARM-based Mac systems.
- (iOS) iOS SDKs are now built using Xcode 12.2.
Authentication
- (Desktop) Fix a crash that would occur if parsing the JSON response from the server failed (#692).
FCM
- (Android) Fixes an issue to receive token when initialize the app. (#667).
Version 8.5.0 - September 15, 2021
- Updating Android and iOS dependencies to the latest.
- Fixes an issue with generating Proguard files. (#664).
Version 8.4.0 - August 27, 2021
- Updating Android and iOS dependencies to the latest.
Cloud Firestore
- Added
operator==
andoperator!=
forSnapshotMetadata
,Settings
,QuerySnapshot
,DocumentSnapshot
,SetOptions
, andDocumentChange
.
Version 8.3.0 - July 27, 2021
- This release adds tvOS C++ libraries that wrap the
community-supported Firebase tvOS SDK.
libs/tvos
contains tvOS-specific libraries, and thexcframeworks
directory now includes support for both iOS and tvOS. The following products are currently included for tvOS: Auth, Database, Firestore, Functions, Installations, Messaging, Remote Config, Storage. - When building from source, the compiler setting of "no exceptions" on app is PRIVATE now and will not affect any other targets in the build.
Cloud Firestore
- Removed the deprecated
Firestore::RunTransaction(TransactionFunction*)
function. Please use the overload that takes astd::function
argument instead. -
FieldValue::Increment
functions are no longer guarded by theINTERNAL_EXPERIMENTAL
macro. - added more validation of invalid input.
- added an
is_valid
method to the public API classes that can be in an invalid state.
Version 8.2.0 - July 14, 2021
- (Android) Updated Flatbuffers internal dependency from version 1.9 to 1.12.
Cloud Firestore
- Deprecated the
Firestore::RunTransaction(TransactionFunction*)
function. Please use the overload that takes astd::function
argument instead. - Removed the deprecated
EventListener
class. - Removed the deprecated overloads of
AddSnapshotListener
andAddSnapshotsInSyncListener
functions that take anEventListener*
argument. Please use the overloads that take astd::function
argument instead.
Version 8.1.0 - June 30, 2021
Cloud Firestore
- Fixed a linker error when
DocumentChange::npos
was used. (#474). - Added
Firestore::NamedQuery
that allows reading the queries used to build a Firestore Data Bundle.
Version 8.0.0 - June 18, 2021
- (Android) Firebase no longer supports STLPort. Use libc++ instead.
- (Android) Firebase support for gnustl (also known as libstdc++) is deprecated and will be removed in the next major release. Use libc++ instead.
- (Android) Fixed a potential SIGABRT when an app was created with a non-default app name on Android KitKat (#429).
- (iOS) A database URL is no longer required to be present in GoogleService-Info.plist when not using the Realtime Database.
AdMob
- (iOS) Temporarily pinned AdMob dependency to a special version of the Google-Mobile-Ads-SDK Cocoapod, "7.69.0-cppsdk", to maintain compatibility with version 8.x of the Firebase iOS SDK.
Analytics
- Removed
SetCurrentScreen()
following its removal from the iOS SDK and deprecation in the Android SDK. UseLogEvent
with the ScreenView event to manually log screen changes.
Cloud Firestore
- Added
Firestore::LoadBundle
to enable loading Firestore data bundles into the SDK cache.Firestore::NamedQuery
will be available in a future release.
Instance ID
- Removed support for the previously-deprecated Instance ID SDK.
Remote Config
- The previously-deprecated static methods have been removed.
Use the new instance-based
firebase::remote_config::RemoteConfig
API instead. - (Android) Fix for getting Remote Config instances for specific app objects. (#991).
Version 7.3.0 - April 27, 2021
- (iOS) Update dependencies.
- (Android) Fix a gradle error if
ANDROID_NDK_HOME
is not set.
Version 7.2.0 - April 14, 2021
- (Android) Firebase support for STLPort is deprecated and will be removed in the next major release. Please use libc++ instead.
- (iOS) iOS SDKs are now built using Xcode 12.
- (iOS) iOS SDKs are now providing XCFrameworks instead of Frameworks.
- Fixed rare crashes at application exit when destructors were being executed (#345).
- (Android) Removed checks for Google Play services for Auth, Database, Functions and Storage as the native Android packages no longer need it. (#361).
Realtime Database
- Fixed a potential crash that can occur as a result of a race
condition when adding, removing and deleting
ValueListener
s orChildListener
s rapidly. - Fixed a crash when setting large values on Windows and Mac systems (#517).
Version 7.1.1 - March 02, 2021
- (Android) Now uses non-conflicting file names for embedded resources in Android builds. This fixes segfault crashes on old Android devices (Android 5.x and below).
Version 7.1.0 - February 16, 2021
- (iOS) Re-enabled Bitcode in iOS builds ([#266][https://github.com/firebase/firebase-cpp-sdk/issues/266]).
Authentication
- You can now specify a language for emails and text messages
sent from your apps using
UseAppLanguage()
orset_language_code()
.
Cloud Firestore
- Fixed partial updates in
Update()
withFieldValue::Delete()
(#882).
FCM
- (Android) Now uses
enqueueWork
instead ofstartService
. This fixes lost messages with data payloads received when the app is in the background. (#877
Remote Config
- Added
firebase::remote_config::RemoteConfig
class with new instance-based APIs to better manage fetching config data. - Deprecated old module-based API in favor of the new instance-based API instead.
- (Desktop) Fixed multiple definition of Nanopb symbols in binary SDK ([#271][https://github.com/firebase/firebase-cpp-sdk/issues/271]).
Version 7.0.1 - February 1, 2021
Firebase installations
- (Android) Fixed incorrect STL variants, which fixes a linker error on Android.
Version 7.0.0 - January 28, 2021
- (iOS) iOS SDKs are now built using Xcode 11.7.
- (Desktop) Windows libraries are now built using Visual
Studio 2019. While VS 2019 is binary-compatible with VS 2015 and VS
2017, you must use VS 2019 or newer to link the desktop SDK. The
libraries have been moved from
libs/windows/VS2015
tolibs/windows/VS2019
to reflect this. - (Desktop) Linux libraries are now built with both the C++11
ABI and the legacy ABI. The libraries have been moved from
libs/linux/${arch}
tolibs/linux/${arch}/legacy
andlibs/linux/${arch}/cxx11
to reflect this.
AdMob
- (Android) Fixed a JNI error when initializing without Firebase App.
Analytics
- Removed deprecated
SetMinimumSessionDuration
call.
Firebase installations
- Added Firebase installations SDK. See Documentation for details.
Instance ID
- Marked Instance ID SDK as deprecated.
FCM
- Added
GetToken
andDeleteToken
APIs. - Removed deprecated
Send()
function. -
raw_data
has been changed from astd::string
to astd::vector<uint8_t>
, and can now be populated.
Cloud Firestore
- Cloud Firestore C++ is now in Beta.
- Added support for
Query::WhereNotEqualTo
andQuery::WhereNotIn
. - Added support for
Settings::set_cache_size_bytes
andSettings::cache_size_bytes
. -
Query
methods that return newQuery
objects are nowconst
. - Added new internal HTTP headers to the gRPC connection.
- Fixed a crash when writing to a document after having been offline for long enough that the auth token expired (#182).
Version 6.16.1 - October 20, 2020
Realtime Database
- Fixed an issue with persistent storage.
- Fixed a problem with missing symbols on Windows.
Version 6.16.0 - October 2, 2020
- (iOS) The minimum supported Xcode version for the prebuilt SDK is 11.6.
AdMob
- Fixed an issue when creating and loading interstitial ads.
Authentication
- Fixed compiler error related to SignInResult.
Realtime Database
- Enabled offline persistence.
Cloud Firestore
- Fixed a deadlock issue caused by not using an event loop.
- Added
error_message
parameter to snapshot listener callbacks.
FCM
- Updated the library to be compatible with Android O.
- Deprecated the
Send
function.
Version 6.15.1 - June 29, 2020
- Fixed an issue that warns about Future handle not released properly.
Cloud Firestore
- all members of
Error
enumeration are now prefixed withkError
; for example,Error::kUnavailable
is nowError::kErrorUnavailable
, which is more consistent with other Firebase C++ SDKs. - Firestore can now be compiled on Windows even in presence of
min
andmax
macros defined in<windows.h>
.
Version 6.15.0 - June 2, 2020
- Fixed an assert creating a custom App when there is no default App.
Cloud Firestore
- Removed
*LastResult
functions from the public API. - Dropped the
From
prefix from the static functions inFieldValue
-
CollectionReference::id
now returns a const reference. - Fixed absl
time_internal
linker error on Windows. - Changed the signature of the callback passed to
Firestore::RunTransaction
to pass the parameters by mutable reference, not by pointer.
Version 6.14.1 - May 18, 2020
Authentication
- Added SignInResult.UserInfo.updated_credential field. On iOS, kAuthErrorCredentialAlreadyInUse errors when linking with Apple may contain a valid updated_credential for use in signing-in the Apple-linked user.
Version 6.14.0 - April 23, 2020
Cloud Firestore
-
Firestore.LoggingEnabled
is replaced byFirestore.LogLevel
for consistency with other Firebase Unity APIs. The getter for this property has been removed.
Version 6.12.0 - March 5, 2020
- Added experimental support for Cloud Firestore SDK, available on all supported platforms. Please note that the API is subject to change.
Version 6.11.0 - February 20, 2020
- (iOS) The minimum supported Xcode version is 10.3.
- When creating an App, the project_id from the default App is now used if one is not provided.
Realtime Database
- (Desktop) Fixed an issue with Database connecting to the server after the Auth token is revoked.
Version 6.10.0 - January 30, 2020
- (iOS) Updated the CMakeLists.txt to link static libraries stored under libs/ios/universal for iOS targets.
Authentication
- Reverted the API of an experimental FederatedAuthHandler callback handler.
- (iOS) Added a new version of
OAuthProvider::GetCredential
, which takes a nonce parameter as required by Apple Sign-in.
Version 6.9.0 - December 27, 2019
Authentication
- Added
Auth::SignInWithProvider
,User::LinkWithProvider
, andUser::ReauthenticateWithProvider
, allowing sign-in with third-party auth providers. - Added constant
kProviderId
strings to auth provider classes. - (iOS): Added support for linking Apple Sign-in credentials.
FCM
- (Android): Added the option to enable or disable message delivery metrics export to BigQuery. This functionality is currently only available on Android. Stubs are provided on iOS for cross platform compatibility.
Version 6.8.0 - December 3, 2019
- (Linux) Added compiler/stdlib check to ensure both the developer's executable and Firebase library are compiled with the same compiler and stdlib.
- Fixed an issue where resource generation from google-services.json would fail if python3 was used to execute the resource generation script.
AdMob
- (Android): Fixed a potentially non thread safe operation in the destruction of BannerViews.
Version 6.7.0 - November 13, 2019
- Added noexcept to move constructors to ensure STL uses move where possible.
- (Windows) Fixed bug where literal value 0 will call string constructor for Variant class.
- Added small string optimisation for
Variant
. - Reduced number of new/delete for
Variant
if copying same type. - Ensure map sort order for variant is consistent.
Analytics
- (iOS) Fixed the racy behavior of
analytics::GetAnalyticsInstanceId()
after callinganalytics::ResetAnalyticsData()
.
Realtime Database
- Fixed an issue causing timestamps to not be populated correctly when using DatabaseReference::UpdateChildren().
- (Desktop) Fixed an issue preventing listener events from being triggered after DatabaseReference::UpdateChildren() is called.
- (Desktop) Functions that take
const char*
parameters will now fail gracefully if passed a null pointer. - (Desktop) Fixed an issue causing.
DatabaseReference::RunTransaction()
to fail due to datastale when the location previously stored a vector with more than 10 items or a map with integer keys. - (Desktop) Fixed an issue that could result in an incorrect snapshot being passed to listeners under specific circumstances.
- (Desktop): Fixed ordering issue of children when using OrderBy on double or int64 types with large values.
Cloud Storage
- (iOS/Android) Fixed an issue where
Storage::GetReferenceFromUrl
would return an invalidStorageReference
. - (Desktop) Changed
url()
to return the empty string if theStorage
instance was created with the default (null) URL.
Version 6.6.1 - October 2, 2019
- Fixed a potential undefined reference in Future::OnCompletion.
Version 6.6.0 - September 25, 2019
Authentication
- (Android) Fixed assert when not using default app instance.
- (Desktop) Fixed not loading provider list from cached user data.
Realtime Database
- (Desktop) Queries on locations in the database with query rules now function properly, instead of always returning "Permission denied".
- (Desktop) Fixed the map-to-vector conversion when firing events that have maps containing enitrely integer keys.
Remote Config
- (Android) Fixed a bug when passing a Variant of type Blob to SetDefaults() on Android.
Version 6.5.0 - September 10, 2019
Authentication
- (Linux) Improved error logging if libsecret (required for login persistence) is not installed on Linux.
Realtime Database
- The database now supports setting the log level independently of the system level logger.
Version 6.4.0 - August 26, 2019
- Fixed an issue causing Futures to clear their data even if a reference was still being held.
Authentication
- Fixed an issue with updated user info not being persisted.
Realtime Database
- (Desktop) Fixed a crash when saving a ServerTimestamp during a transaction.
Version 6.3.0 - August 14, 2019
- (iOS/Android) Fixed a bug that allows custom firebase::App instances to be created after the app has been restarted.
Authentication
- (Desktop) Changed destruction behavior. Instead of waiting for all async operations to finish, now Auth will cancel all async operations and quit. For callbacks that are already running, this will protect against cases where auth instances might not exist anymore.
- (iOS) Fixed an exception in firebase::auth::VerifyPhoneNumber.
- (iOS) Stopped Auth from hanging on destruction if any local futures remain in scope.
Realtime Database
- (Desktop) Fixed an issue that could cause a crash when updating the descendant of a location with a listener attached.
Version 6.2.2 - July 26, 2019
Authentication
- (Desktop) After loading a persisted user data, ensure token is not expired.
Realtime Database
- (Desktop) Fixed use of an expired auth token after it's loaded from persistent storage.
- (Desktop) Fixed DatabaseReference::RunTransaction() sending invalid data to the server which causes error message "Error on incoming message" and freeze.
Cloud Functions
- (Desktop) Fixed use of an expired auth token after it's loaded from persistent storage.
Cloud Storage
- (Desktop) Fixed use of an expired auth token after it's loaded from persistent storage.
Version 6.2.0 - July 2, 2019
- Updated Firebase iOS and Firebase Android dependencies.
- Added a way to configure SDK-wide log verbosity.
Instance ID
- (Android) Fixed a crash when destroying InstanceID objects.
Dynamic Links
- Added support for custom domains.
Realtime Database
- Added a way to configure log verbosity of Realtime Database instances.
Version 6.1.0 - June 6, 2019
- Updated Firebase iOS and Firebase Android dependencies.
Authentication
- User's credentials will now persist between sessions. See the documentation for more information.
- As part of the above change, if you call current_user() immediately after creating the Auth instance, it will block until the saved user's state is finished loading.
- Fixed an issue where Database/Functions/Storage might not use the latest auth token immediately after sign-in.
- Fixed an issue where an error code could get reported incorrectly on Android.
Realtime Database
- (Desktop) Fixed an issue that could cause a crash during shutdown.
- (iOS) Fixed a race condition that could cause a crash when cleaning up database listeners on iOS.
- (iOS) Fixed an issue where long (64-bit) values could get written to the database incorrectly (truncated to 32-bits).
Cloud Functions
- Change assert to log warning when App is deleted before Cloud Functions instance is deleted.
FCM
- Added channel_id to Messaging notifications.
Version 6.0.0 - May 7, 2019
- Updated Firebase iOS and Firebase Android dependencies.
Authentication
- Fixed a race condition updating the current user.
FCM
- (iOS/Android) Fix an issue where Subscribe and Unsubscribe never returned if you were set not to receive a registration token.
Invites
- Removed Firebase Invites library, as it is no longer supported.
Remote Config
- Removed functions using config namespaces, which were deprecated in a previous release.
Analytics
- Deprecated SetMinimumSessionDuration.
AdMob
- (Android) To work around a incompatible dependency, AdMob temporarily requires an additional dependency on com.google.android.gms:play-services-measurement-sdk-api:16.5.0
Version 5.7.0 - April 19, 2019
As this release of the Firebase C++ SDK is the final version to support Firebase Invites, it will remain available for download here.
Remote Config
- Config namespaces are now deprecated. You'll need to switch to methods that use the default namespace.
AdMob
- (Android) To work around a incompatible dependency, AdMob temporarily requires an additional dependency on com.google.android.gms:play-services-measurement-sdk-api:16.4.0
Version 5.6.1 - April 5, 2019
- (iOS) Updated to the latest iOS SDK to fix a crash on
firebase::App
creation caused by a race condition. The crash could occur when accessing the [FIRApp firebaseUserAgent] property of the iOS FIRApp.
Version 5.6.0 - March 18, 2019
- Firebase C++ is now open source.
- Fixed a crash when deleting
firebase::App
before deleting other Firebase subsystems.
Authentication
- (iOS) Added Game Center authentication.
Realtime Database
- (Desktop) Reworked how cached server values work to be more in line with mobile implementations.
- (Desktop) Simultaneous transactions are now supported.
- (Desktop) The special Timestamp ServerValue is now supported.
- (Desktop) KeepSynchronized is now supported.
Version 5.5.0 - February 19, 2019
- (Android) Added a gradle file to the SDK that handles adding Firebase Android dependencies to your Firebase C++ apps. See the Firebase C++ Samples for example usage.
Invites
- Invites is deprecated. Please refer to https://firebase.google.com/docs/invites for details.
Version 5.4.4 - January 18, 2019
AdMob
- (iOS) Fixed an issue with Rewarded Video ad unit string going out of scope.
Cloud Functions
- (Android) Fixed an issue with error handling.
Version 5.4.3 - November 30, 2018
Cloud Storage
- (iOS): Fixed an issue when downloading files with
GetBytes
.
Version 5.4.2 - November 15, 2018
Authentication
- (Android): Removed an irrelevant error about the Java class FirebaseAuthWebException.
Version 5.4.0 - October 19, 2018
Dynamic Links
- (Android): Fixed short link generation failing with "error 8".
Realtime Database
- (Desktop) The Realtime Database Desktop SDK uses REST to access your database. Because of this, you must declare the indexes you use with Query::OrderByChild() on Desktop or your listeners will fail.
Version 5.3.1 - October 3, 2018
Invites
- (Android) Fixed an exception when the Android Minimum Version code option is used on the Android.
Version 5.3.0 - September 20, 2018
- (iOS) The minimum supported Xcode version is 9.4.1.
Realtime Database
- (Desktop) Fixed issues in
ChildListener
. - (Desktop) Fixed crash that could occur if the Database was deleted while an asynchronous operation was still in progress.
Cloud Functions
- (Android) Fixed an issue when a function returns an array.
Version 5.2.1 - August 16, 2018
Authentication
- Fixed a race condition that was returning the wrong Future when you called the same method twice in quick succession.
Realtime Database
- Fixed a race condition that was returning the wrong Future when you called the same method twice in quick succession.
- (Desktop) Fixed support for
ChildListener
when used withQuery::EqualTo()
,Query::StartAt()
,Query::EndAt()
,Query::LimitToFirst()
andQuery::LimitToLast()
. - Fixed a crash in DatabaseReference/Query copy assignment operator and copy constructor.
Version 5.2.0 - July 20, 2018
- (Android) Fixed a null reference in the Google Play Services availability checker.
Authentication
- (Android) Fixed a crash in
User::UpdatePhoneNumberCredential()
.
Realtime Database
- Added a version of
GetInstance()
that allows passing in the URL of the database to use.
Cloud Functions
- Added a way to specify which region to run the function in.
FCM
- Changed
Subscribe()
andUnsubscribe()
to return a Future.
Version 5.1.1 - June 27, 2018
- Updated Android and iOS dependency versions only.
Version 5.1.0 - June 22, 2018
Cloud Functions
- Added support for Cloud Functions on iOS, Android, and desktop.
Analytics
- Added
ResetAnalyticsData()
to clear all analytics data for an app from the device. - Added
GetAppInstanceId()
which allows developers to retrieve the current app's analytics instance ID.
Authentication
- Linking a credential with a provider that has already been linked now produces an error.
- (iOS) Fixed crashes in
User::LinkAndRetrieveDataWithCredential()
andUser::ReauthenticateAndRetrieveData()
. - (iOS) Fixed photo URL never returning a value on iOS.
- (Android) Fixed setting profile photo URL with
UpdateUserProfile()
.
Realtime Database
- Added support for ServerValues in
SetPriority()
methods.
Version 5.0.0 - June 5, 2018
- (Android/iOS) Library names have been prefixed with "firebase_", for example libapp.a is now libfirebase_app.a. This brings them in line with the naming scheme used on desktop, and iOS frameworks.
- (Android) Improved error handling when device is out of space.
- Removed deprecated accessor methods from Future.
AdMob
- Removed deprecated accessor methods from BannerView and InterstitialAd.
Authentication
- Removed deprecated accessors from Auth, Credential, User, and UserInfoInterface, including User::refresh_token().
Realtime Database
- Removed deprecated accessors from DatabaseReference, Query, DataSnapshot, and MutableData.
Dynamic Links
- Added a field to received dynamic links describing the strength of the match.
FCM
- Added an optional initialization options struct. This can be used to suppress the prompt on iOS that requests permission to receive notifications at start up. Permission can be requested manually using the function firebase::messaging::RequestPermission().
Invites
- Added OnInviteReceived to Listener base class that includes the strength of the match on the received invite as an enum. Deprecated prior function that received it as a boolean value.
Cloud Storage
- Removed deprecated accessors from StorageReference.
- Removed Metadata::download_url() and Metadata::download_urls(). Please use StorageReference::GetDownloadUrl() instead.
Version 4.5.1 - April 16, 2018
Authentication
- (Desktop) Added support for accessing user metadata.
Realtime Database
- (Desktop) Fixed a bug to make creation of database instances with invalid URLs return nullptr.
- (Desktop) Fixed an issue where incorrect values could be passed to OnChildAdded.
FCM
- Added the SetAutoTokenRegistrationOnInitEnabled() and IsAutoTokenRegistrationOnInitEnabled() methods to enable or disable auto-token generation.
Remote Config
- Fixed a bug causing incorrect reporting of success or failure during a Fetch().
Version 4.5.0 - Mar 19, 2018
- (Desktop) Stub implementations of Authentication, Realtime Database, Remote Config, and Cloud Storage have been replaced with functional desktop workflow implementations on Windows, OS X, and Linux.
AdMob
- Native Express ads have been discontinued, so
NativeExpressAdView
has been marked deprecated and will be removed in a future version.
Authentication
- (Android) Added support for Google Play Games authentication.
- (Desktop) Stub implementation has been replaced with a functional desktop workflow implementation on Windows, OS X, and Linux.
- Fixed a race condition initializing/destroying Auth instances.
Realtime Database
- (Desktop) Stub implementation has been replaced with a functional desktop workflow implementation on Windows, OS X, and Linux.
- (Desktop) When using Realtime Database on desktop, only one Transaction may be run on a given subtree at the same time.
- (Desktop) When using Realtime Database on desktop, data persistence is not available.
Remote Config
- (Desktop) Stub implementation has been replaced with a functional desktop workflow implementation on Windows, OS X, and Linux.
Cloud Storage
- (Desktop) Stub implementation has been replaced with a functional desktop workflow implementation on Windows, OS X, and Linux.
- Added MD5 hash to Metadata.
- Fixed a crash when deleting listeners and other object instances.
- Controller can now be used from any thread.
- (iOS) Fixed incorrect content type when uploading.
Version 4.4.3 - Mar 5, 2018
- (iOS) Removed unresolved symbols in the App library that could cause errors when forcing resolution.
Version 4.4.2 - Feb 23, 2018
- (Windows) Updated all static libs to support different C runtime libraries and correspondingly updated the package directory structure.
- (Linux) Fixed linking problems with all of the C++ stub libraries.
Dynamic Links
- (iOS) Now fetches the invite ID when using universal links.
- (iOS) Fixed crash on failure of dynamic link completion.
- (iOS) Fixed an issue where some errors weren't correctly reported.
Invites
- Fixed SendInvite never completing in the stub implementation.
Remote Config
- Remote Config (iOS) Fixed an issue where some errors weren't correctly reported.
Cloud Storage
- Fixed Metadata::content_language returning the wrong data.
- (iOS) Reference paths formats are now consistent with other platforms.
- (iOS) Fixed an issue where trying to upload to a non-existent path would not complete the Future.
- (iOS) Fixed a crash when a download fails.
Version 4.4.1 - Jan 26, 2018
Realtime Database
-
SetPersistenceEnabled
now sets persistence enabled.
Instance ID
- (iOS)
GetToken
no longer fails without an APNS certificate, and no longer forces registering for notifications.
Version 4.4.0 - Jan 3, 2018
Instance ID
- Added Instance ID library.
Version 4.3.0 - Nov 30, 2017
Authentication
- Added support for accessing user metadata.
Remote Config
- (Android) Fixed
remote_config::ValueSource
conversion.
Version 4.2.0 - Oct 2, 2017
Analytics
- Fixed a bug which prevented the user ID and user properties being cleared.
Authentication
- Failed operations now return more specific error codes.
- (iOS) Phone Authentication no longer requires push notifications. When push notifications aren't available, reCAPTCHA verification is used instead.
Realtime Database
- (Android) Fixed
MutableData::children_count()
.
FCM
- Messages sent to users can now contain a link URL.
- (Android) Fixed a bug which prevented the message ID field being set.
Version 4.1.0 - Aug 23, 2017
- Added
std::function
support toFuture::OnCompletion
, to allow use of C++11 lambdas with captures. - Futures are now invalidated when their underlying Firebase API is destroyed.
- Updated to iOS 4.1.0 SDK and Android 11.2.0 SDK.
AdMob
- (iOS) Fixed a crash if a BannerView is deleted while a call to
Destroy()
is still pending.
Realtime Database
- Added a context pointer to
DatabaseReference::RunTransaction
, as well asstd::function
support to allow use of C++11 lambdas with captures. -
DataSnapshot
,DatabaseReference
,Query
, and other objects are invalidated when theirDatabase
instance is destroyed.
FCM
- Added
PollableListener
to make it easier to poll for messages in an update loop. - (Android) Fixed a bug where
message_type
was not set in the Message struct. - (iOS) Fixed a race condition if a message is received before FCM is initialized.
- (iOS) Fixed a bug detecting whether the notification was opened if the app was running in the background.
Remote Config
- When listing keys, the list now includes keys with defaults set, even if they were not present in the fetched config.
Cloud Storage
-
StorageReference
objects are invalidated when their Storage instance is destroyed.
Version 4.0.3 - Aug 1, 2017
- (iOS) Fixed an issue which resulted in custom options not being applied to firebase::App instances.
- (iOS) Fixed a bug which caused method implementation look ups to fail when other iOS SDKs rename the selectors of swizzled methods.
Dynamic Links
- (Android) Fixed future completion if short link creation fails.
FCM
- (iOS) Fixed message handling when messages they are received via the direct channel to the FCM backend (i.e not via APNS).
Version 4.0.2 - Jul 7, 2017
Analytics
- Fixed
SetCurrentScreen
to work from any thread.
Authentication
- (iOS) Fixed an issue which incorrectly invalidated the current user if credential linking fails.
Dynamic Links
- Fixed an issue which caused an app to sometimes crash or not receive a Dynamic Link if it's opened when the app is installed and not running.
FCM
- (iOS) Fixed a crash when no
Listener
is set. - Fixed
Listener::OnTokenReceived
occasionally being called twice with the same token.
Version 4.0.1 - Jun 16, 2017
FCM
- (Android): Fixed an issue where
Terminate()
was not correctly shutting down the FCM library. - (iOS): Fixed an issue where library would crash on start up if there was no registration token.
Dynamic Links and Invites
- (iOS) Fixed an issue which caused an app to not receive a Dynamic Link if it's opened when the app is installed and not running.
Version 4.0.0 - Jun 9, 2017
- (Android) Fixed crash in some circumstances after resolving dependencies by updating Google Play services.
Authentication
- Added support for phone number authentication.
- Added the ability to retrieve user metadata.
- Moved token notification to a separate listener object.
Dynamic Links
- Added a standalone library separate from Invites.
Invites
- (iOS) Fixed an issue in the Analytics SDK's method swizzling which resulted in Dynamic Links / Invites not being sent to the application.
FCM
- (Android) Fixed a regression introduced in 3.0.3 which caused a crash when opening up a notification when the app is running in the background.
- (iOS) Fixed interoperation with other users of local notifications.
Version 3.1.2 - May 11, 2017
Authentication
- Fixed a crash caused by a stale memory reference when a
firebase::auth::Auth
object is destroyed and then recreated for the sameApp
object. - Fixed a potential memory corruption when
AuthStateListener
is destroyed.
Version 3.1.1 - May 9, 2017
- (Android) Fixed a crash in the Google Play services updater that occurred when clicking outside of the dialog on Android 4.x devices.
Authentication
- Fixed an issue that caused users to be invalidated when a linking credential fails.
- Deprecated the
User::refresh_token()
method.
FCM
- (Android) Resolved an issue which caused an app to receive an empty message when a notification message is received while the app is in the background and the user then taps on the app icon rather than on the notification message.
Invites
- (iOS) Fixed an issue which resulted in the app delegate method
application:openURL:sourceApplication:annotation:
not being called when linking the invites library.
Cloud Storage
- Modified the API so that it's possible to construct metadata without a storage reference.
Version 3.1.0 - March 8, 2017
Cloud Storage
- Added an overload for
Storage::GetInstance()
that accepts ags://...
URL, so you can use Cloud Storage with multiple buckets.
Invites
- (Android) Fixed an issue where invitations with empty links would fail to be received.
Version 3.0.0 - February 27, 2017
- 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
- Added
SetCurrentScreen()
.
Authentication
- Fixed a race condition accessing user data in callbacks.
- (Android) Added
is_valid()
to check if a credential returned byGetCredential()
is valid.
Invites
- (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). - (iOS) Fixed regression since 2.1.1 that broke Invites if the AppDelegate did not implement the open URL method.
FCM
- Added a field to
firebase::messaging::Message
specifying whether the message was received when the app was in the background. - (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.
- (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
- Added support for initializing Remote Config defaults from
firebase::Variant
values, including binary data.
Version 2.1.3 - February 6, 2017
- Fixed a potential deadlock when running callbacks registered via
firebase::Future::OnCompletion
.
Authentication
- (Android) Fixed an error in
firebase::auth::User::PhotoUri
.
FCM
- (iOS) Removed hard dependency on Xcode 8.
- (Android) Fixed an issue where the application would receive an empty message on startup.
Version 2.1.2 - January 20, 2017
AdMob
- (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
- (Android) Fixed an issue that caused a future to never complete when signing in while a user is already signed in.
FCM
- (iOS) Fixed an issue with method swizzling that caused some
of the application's
UIApplicationDelegate
methods to not be called. - (iOS) Fixed an issue which caused a crash when initializing the library when building with Xcode 8 for iOS 10.
Invites
- (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
Cloud Storage
- Added a C++ client library for Cloud Storage. To get started, see Get Started with Cloud Storage for C++.
- (Android) Pausing and resuming storage operations will cause the
data transfer to fail with the error code
kErrorUnknown
.
Authentication
- Added a check for saved user credentials when Authentication is initialized.
Version 2.0.0 - November 7, 2016
AdMob
- Added support for AdMob Native Express Ads.
Authentication
- Added the
AuthStateListener
class that provides notifications when a user is logged in or logged out.
Realtime Database
- Added a C++ client library for Realtime Database. To get started, see Get Started with Firebase Realtime Database for C++.
Invites
- Made breaking changes to simplify the Invites API. To learn more, see the Invites C++ API overview
Version 1.2.1 - October 3, 2016
Cloud Messaging
- (Android) Fixed a bug that prevented apps from terminating properly.
- (iOS) Added missing copy constructor implementation in iOS and stub libraries.
Version 1.2.0 - September 21, 2016
- (Android) Added
firebase::ModuleInitializer
, a helper class to initialize Firebase modules and handle any missing dependency on Google Play services.
Cloud Messaging
- Added
firebase::messaging::Notification
and associated methods to allow retrieval of the contents of a notification. - (iOS) Added support for iOS 10 notifications.
- (Android) Fixed an issue that caused a crash if Cloud Messaging was initialized before the native library was loaded.
Authentication
- (Android) Added new API methods,
User::SendEmailVerification()
andUser::EmailVerified()
to verify a user's email address.
Remote Config
- Added
GetKeys()
andGetKeysByPrefix()
methods to allow developers to find parameter keys based on a key prefix.
Invites
- (iOS) Fixed an issue that could potentially crash an app during
shutdown when the
InvitesReceiver::Fetch()
method is pending. - Fixed an issue that occurred when initializing
InvitesSender
andInvitesReceiver
simultaneously.
AdMob
- Added the Rewarded Video Mediation feature to the C++ SDK. For more information, see the Rewarded Video C++ guide.
- You can now pass your
AdMob App ID
to
firebase::admob::Initialize()
to help reduce latency for the initial ad request. - (iOS) You must now call
BannerView::Show()
to display an ad. Previously, this was only required on Android. - Fixed an issue where
BannerView::Listener()
received an incorrect bounding box.
Version 1.1.0 - August 1, 2016
App
- Added utility functions to check whether Google Play services is
available. See
google_play_services::CheckAvailability()
andgoogle_play_services::MakeAvailable()
for more information. -
App::Create()
will no longer check for Google Play services, nor will it returnnullptr
. It will always return an App, and the individual Firebase features will check for Google Play services at initialization if required.
Analytics
- Fixed a crash that occurs when logging string events.
Authentication
-
firebase::auth::GetAuth()
now has an option to return a result that indicates whether initialization was successful, and to returnnullptr
if initialization failed.
Firebase Cloud Messaging
-
firebase::messaging::Initialize()
now returns a result that indicates whether initialization was successful.
Invites
- Added
firebase::invites::Initialize()
, which you must call once prior to creatingInvitesSender
orInvitesReceiver
instances. This function returns a result that indicates whether initialization was successful. - If you call
InvitesReceiver::Fetch()
orInvitesReceiver::ConvertInvitation()
without first callingfirebase::invites::Initialize()
, the operation will never complete. To work around this issue, ensure thatfirebase::invites::Initialize()
is called once before creating anyInvitesReceiver
instances. - If you create
InvitesSender
and thenInvitesReceiver
, theInvitesReceiver
may fail to connect, and be unable to fetch results. To work around this issue, you can delay creating theInvitesSender
until after the future returned byInvitesReceiver::Fetch()
has completed.
Remote Config
-
firebase::remote_config::Initialize()
now returns a result that indicates whether initialization was successful.
AdMob
-
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:
- Modified
firebase::App
to check for the required version of Google Play services on creation to preventfirebase::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 usingGoogleApiClient
.
AdMob
- Fixed a potential deadlock when using SetListener from a
notification callback in
firebase::admob::InterstitialAd
andfirebase::admob::BannerView
on iOS. - Fixed a race condition on destruction of
admob::BannerView
on Android. - 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 aBannerView
object, each call to a method which returns a Future could potentially allocate memory which wouldn't be reclaimed until theBannerView
object is destroyed.