2182 lines
101 KiB
Markdown
2182 lines
101 KiB
Markdown
# Firebase C++ SDK
|
|
|
|
The Firebase C++ SDK provides C++ interfaces for the following Firebase services
|
|
on *iOS* and *Android*:
|
|
|
|
* Firebase Analytics
|
|
* Firebase App Check
|
|
* Firebase Authentication
|
|
* Firebase Cloud Messaging
|
|
* Firebase Dynamic Links (deprecated SDK)
|
|
* Cloud Firestore
|
|
* Firebase Functions
|
|
* Google Mobile Ads (with User Messaging Platform)
|
|
* Firebase Installations
|
|
* Firebase Instance ID (deprecated SDK)
|
|
* Firebase Realtime Database
|
|
* Firebase Remote Config
|
|
* Firebase Storage
|
|
|
|
## Desktop Workflow Implementations
|
|
|
|
The Firebase C++ SDK includes desktop workflow support for the following subset
|
|
of Firebase features, enabling their use on Windows, OS X, and Linux:
|
|
|
|
* Firebase Authentication
|
|
* Firebase App Check
|
|
* Cloud Firestore
|
|
* Firebase Functions
|
|
* Firebase Remote Config
|
|
* Firebase Realtime Database
|
|
* Firebase Storage
|
|
|
|
This is a Beta feature, and is intended for workflow use only during the
|
|
development of your app, not for publicly shipping code.
|
|
|
|
## Stub Implementations
|
|
|
|
Stub (non-functional) implementations of the remaining libraries are provided
|
|
for convenience when building for Windows, Mac OS, and Linux so that you don't
|
|
need to conditionally compile code when also targeting the desktop.
|
|
|
|
## Directory Structure
|
|
|
|
The following table provides an overview of the Firebase C++ SDK directory
|
|
structure.
|
|
|
|
Directories | Contents
|
|
------------------------- | --------
|
|
include | C++ headers
|
|
xcframeworks/API/ARCH | iOS xcframeworks (compiled against libc++)
|
|
libs/ios/ARCH | iOS static libraries (compiled against
|
|
| | libc++)
|
|
| | Multi-architecture libraries are
|
|
| | provided in the *universal* directory.
|
|
libs/android/ARCH | Android (GCC 4.8+ compatible) static
|
|
| | libraries for each architecture. Only the
|
|
| | LLVM libc++ STL runtime ("c++") is supported.
|
|
| | More information can be found in the
|
|
| | [NDK C++ Helper Runtimes](https://developer.android.com/ndk/guides/cpp-support.html#runtimes)
|
|
| | documentation.
|
|
*Desktop Implementations* |
|
|
libs/darwin | OS X static libraries (desktop or stub
|
|
| | implementations, compiled against libc++)
|
|
frameworks/darwin | OS X frameworks (desktop or stub
|
|
| | implementations, compiled against libc++)
|
|
libs/linux/ARCH/ABI | Linux static libraries (desktop or stub
|
|
| | implementations, GCC 4.8+, libc++).
|
|
| | Built against C++11 or legacy ABI.
|
|
libs/windows | Windows static libraries (desktop or stub
|
|
| | implementations, MSVC 2019+)
|
|
|
|
## C++ Language Standards
|
|
|
|
The Firebase C++ SDK supports the C++14 language standard. For more information,
|
|
please see our [C++ Language Standard Support
|
|
Criteria](https://opensource.google/documentation/policies/cplusplus-support#c_language_standard).
|
|
|
|
## Library / XCFramework Dependencies
|
|
|
|
Each feature has dependencies upon libraries in this SDK and components
|
|
distributed as part of the core Firebase
|
|
[iOS SDK](https://firebase.google.com/docs/ios/setup) and
|
|
[Android SDK](https://firebase.google.com/docs/android/setup).
|
|
|
|
### Android Dependencies
|
|
|
|
Feature | Required Libraries and Gradle Packages
|
|
-------------------------- | --------------------------------------
|
|
All Firebase SDKs | platform(com.google.firebase:firebase-bom:33.1.2)
|
|
| | (Android Bill of Materials)
|
|
Firebase Analytics | libfirebase_analytics.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
Firebase App Check | libfirebase_app_check.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-appcheck
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-appcheck-debug
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-appcheck-playintegrity
|
|
| | (Maven package)
|
|
Firebase Authentication | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-auth
|
|
| | (Maven package)
|
|
Firebase Dynamic Links | libfirebase_dynamic_links.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-dynamic-links
|
|
| | (Maven package)
|
|
Cloud Firestore | libfirebase_firestore.a
|
|
| | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-firestore
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-auth
|
|
| | (Maven package)
|
|
Firebase Functions | libfirebase_functions
|
|
| | libfirebase_auth.a (optional)
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-functions
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-auth
|
|
| | (Maven package)
|
|
Google Mobile Ads | libfirebase_gma.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.android.gms:play-services-ads:23.0.0
|
|
| | (Maven package)
|
|
| | com.google.android.ump:user-messaging-platform:2.2.0
|
|
| | (Maven package)
|
|
Firebase Installations | libfirebase_installations.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-installations
|
|
| | (Maven package)
|
|
Firebase Messaging | libfirebase_messaging.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-messaging
|
|
| | (Maven package)
|
|
| | libmessaging_java.jar (Android service)
|
|
| | androidx.core:core:1.13.1 (Maven package)
|
|
Firebase Realtime Database | libfirebase_database.a
|
|
| | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-database
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-auth
|
|
| | (Maven package)
|
|
Firebase Remote Config | libfirebase_remote_config.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-config
|
|
| | (Maven package)
|
|
Firebase Storage | libfirebase_storage.a
|
|
| | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
| | com.google.firebase:firebase-analytics
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-storage
|
|
| | (Maven package)
|
|
| | com.google.firebase:firebase-auth
|
|
| | (Maven package)
|
|
Google Play services module| com.google.android.gms:play-services-base:18.5.0
|
|
| | (Maven package)
|
|
|
|
The Firebase C++ SDK uses an Android BoM (Bill of Materials) to specify a single
|
|
Firebase Android SDK version number to use, rather than individual versions for
|
|
each library. For more information, please see the [Firebase Android SDK
|
|
documentation](https://firebase.google.com/docs/android/learn-more#bom).
|
|
|
|
#### Gradle dependency file
|
|
|
|
Firebase C++ includes an `Android/firebase_dependencies.gradle` file
|
|
that helps you include the correct Android dependencies and Proguard
|
|
files for each Firebase product. To use it, include the following in
|
|
your build.gradle file (you can omit any Firebase products you aren't
|
|
using):
|
|
|
|
```
|
|
apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
|
|
firebaseCpp.dependencies {
|
|
app // Recommended for all apps using Firebase.
|
|
analytics
|
|
appCheck
|
|
auth
|
|
database
|
|
dynamicLinks
|
|
firestore
|
|
functions
|
|
gma
|
|
installations
|
|
messaging
|
|
remoteConfig
|
|
storage
|
|
}
|
|
```
|
|
|
|
#### Google Play services module
|
|
|
|
If you wish to use the `google_play_services::CheckAvailability` and
|
|
`MakeAvailable` functions, or `firebase::ModuleInitializer`, you must include
|
|
com.google.android.gms:play-services-base as a dependency as well, as listed
|
|
under "Google Play services module" in the table above. If you use the Gradle
|
|
dependency file described above, this dependency will automatically be included.
|
|
To omit it (not recommended), specify `appWithoutPlayServices` instead of `app`
|
|
in `firebaseCpp.dependencies`.
|
|
|
|
### iOS Dependencies
|
|
|
|
iOS users can include either xcframeworks or static libraries depending upon their
|
|
preferred build environment.
|
|
|
|
#### XCFrameworks
|
|
|
|
Feature | Required Frameworks and Cocoapods
|
|
-------------------------- | ---------------------------------------
|
|
Firebase Analytics | firebase_analytics.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/Analytics Cocoapod (11.0.0)
|
|
Firebase App Check | firebase_app_check.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/AppCheck Cocoapod (11.0.0)
|
|
Firebase Authentication | firebase_auth.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Firebase Dynamic Links | firebase_dynamic_links.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/DynamicLinks Cocoapod (11.0.0)
|
|
Cloud Firestore | firebase_firestore.xcframework
|
|
| | firebase_auth.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/Firestore Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Firebase Functions | firebase_functions.xcframework
|
|
| | firebase_auth.xcframework (optional)
|
|
| | firebase.xcframework
|
|
| | Firebase/Functions Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Google Mobile Ads | firebase_gma.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/CoreOnly Cocoapod (11.0.0)
|
|
| | Google-Mobile-Ads-SDK Cocoapod (11.2.0)
|
|
| | GoogleUserMessagingPlatform Cocoapod (2.3.0)
|
|
Firebase Installations | firebase_installations.xcframework
|
|
| | firebase.xcframework
|
|
| | FirebaseInstallations Cocoapod (11.0.0)
|
|
Firebase Cloud Messaging | firebase_messaging.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/Messaging Cocoapod (11.0.0)
|
|
Firebase Realtime Database | firebase_database.xcframework
|
|
| | firebase_auth.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/Database Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Firebase Remote Config | firebase_remote_config.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/RemoteConfig Cocoapod (11.0.0)
|
|
Firebase Storage | firebase_storage.xcframework
|
|
| | firebase_auth.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/Storage Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
|
|
Important: Each version of the Firebase C++ SDK supports a specific version of
|
|
the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions
|
|
listed above.
|
|
|
|
Note: Parts of the Firebase iOS SDK are written in Swift. If your application
|
|
does not use any Swift code, you may need to add an empty .swift file to your
|
|
Xcode project to ensure that the Swift runtime is included in your app.
|
|
|
|
#### Libraries
|
|
|
|
If you prefer to link against static libraries instead of xcframeworks (see the
|
|
previous section) the following table describes the libraries and Cocoapods
|
|
required for each SDK feature.
|
|
|
|
Feature | Required Libraries and Cocoapods
|
|
-------------------------- | -----------------------------------------
|
|
Firebase Analytics | libfirebase_analytics.a
|
|
| | libfirebase_app.a
|
|
| | Firebase/Analytics Cocoapod (11.0.0)
|
|
Firebase App Check | firebase_app_check.xcframework
|
|
| | firebase.xcframework
|
|
| | Firebase/AppCheck Cocoapod (11.0.0)
|
|
Firebase Authentication | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Firebase Dynamic Links | libfirebase_dynamic_links.a
|
|
| | libfirebase_app.a
|
|
| | Firebase/DynamicLinks Cocoapod (11.0.0)
|
|
Cloud Firestore | libfirebase_firestore.a
|
|
| | libfirebase_app.a
|
|
| | libfirebase_auth.a
|
|
| | Firebase/Firestore Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Firebase Functions | libfirebase_functions.a
|
|
| | libfirebase_app.a
|
|
| | libfirebase_auth.a (optional)
|
|
| | Firebase/Functions Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Google Mobile Ads | libfirebase_gma.a
|
|
| | libfirebase_app.a
|
|
| | Firebase/CoreOnly Cocoapod (11.0.0)
|
|
| | Google-Mobile-Ads-SDK Cocoapod (11.2.0)
|
|
| | GoogleUserMessagingPlatform Cocoapod (2.3.0)
|
|
Firebase Installations | libfirebase_installations.a
|
|
| | libfirebase_app.a
|
|
| | FirebaseInstallations Cocoapod (11.0.0)
|
|
Firebase Cloud Messaging | libfirebase_messaging.a
|
|
| | libfirebase_app.a
|
|
| | Firebase/CloudMessaging Cocoapod (11.0.0)
|
|
Firebase Realtime Database | libfirebase_database.a
|
|
| | libfirebase_app.a
|
|
| | libfirebase_auth.a
|
|
| | Firebase/Database Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
Firebase Remote Config | libfirebase_remote_config.a
|
|
| | libfirebase_app.a
|
|
| | Firebase/RemoteConfig Cocoapod (11.0.0)
|
|
Firebase Storage | libfirebase_storage.a
|
|
| | libfirebase_app.a
|
|
| | libfirebase_auth.a
|
|
| | Firebase/Storage Cocoapod (11.0.0)
|
|
| | Firebase/Auth Cocoapod (11.0.0)
|
|
|
|
Important: Each version of the Firebase C++ SDK supports a specific version of
|
|
the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions
|
|
listed above.
|
|
|
|
Note: Parts of the Firebase iOS SDK are written in Swift. If your application
|
|
does not use any Swift code, you may need to add an empty .swift file to your
|
|
Xcode project to ensure that the Swift runtime is included in your app.
|
|
|
|
### Desktop Implementation Dependencies
|
|
|
|
#### Linux libraries
|
|
|
|
For Linux, library versions are provided for 32-bit (i386) and 64-bit (x86_64)
|
|
platforms.
|
|
|
|
Two sets of Linux libraries are available: one set built against the newer C++11
|
|
ABI, and another set built against the standard (legacy) ABI. This is equivalent
|
|
to the compiler option -D_GLIBCXX_USE_CXX11_ABI=1 or 0, respectively.
|
|
|
|
Feature | Required Libraries
|
|
------------------------------- | -----------------------------
|
|
Firebase Authentication | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
Firebase App Check | libfirebase_app_check.a
|
|
| | libfirebase_app.a
|
|
Cloud Firestore | libfirebase_firestore.a
|
|
| | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
Firebase Functions | libfirebase_functions.a
|
|
| | libfirebase_auth.a (optional)
|
|
| | libfirebase_app.a
|
|
Firebase Realtime Database | libfirebase_database.a
|
|
| | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
Firebase Remote Config | libfirebase_remote_config.a
|
|
| | libfirebase_app.a
|
|
Firebase Storage | libfirebase_storage.a
|
|
| | libfirebase_auth.a
|
|
| | libfirebase_app.a
|
|
Firebase Analytics (stub) | libfirebase_analytics.a
|
|
| | libfirebase_app.a
|
|
Firebase Dynamic Links (stub) | libfirebase_dynamic_links.a
|
|
| | libfirebase_app.a
|
|
Google Mobile Ads (stub) | libfirebase_gma.a
|
|
| | libfirebase_app.a
|
|
Firebase Installations (stub) | libfirebase_installations.a
|
|
| | libfirebase_app.a
|
|
Firebase Cloud Messaging (stub) | libfirebase_messaging.a
|
|
| | libfirebase_app.a
|
|
|
|
The provided libraries have been tested using GCC 4.8.0, GCC 7.2.0, and Clang
|
|
5.0 on Ubuntu. When building C++ desktop apps on Linux, you will need to link
|
|
the `pthread` system library (consult your compiler documentation for more
|
|
information).
|
|
|
|
#### OS X libraries
|
|
|
|
For OS X (Darwin), library versions are provided for both Intel (x86_64) and ARM
|
|
(arm64) platforms, as well as universal libraries. See the table above (in the
|
|
"Linux libraries" section) for the list of library dependencies. Frameworks are
|
|
also provided for your convenience.
|
|
|
|
Feature | Required Frameworks
|
|
------------------------------- | ----------------------------------
|
|
Firebase Authentication | firebase_auth.framework
|
|
| | firebase.framework
|
|
Firebase App Check | libfirebase_app_check.framework
|
|
| | libfirebase_app.framework
|
|
Cloud Firestore | firebase_firestore.framework
|
|
| | firebase_auth.framework
|
|
| | firebase.framework
|
|
Firebase Functions | firebase_functions.framework
|
|
| | firebase_auth.framework (optional)
|
|
| | firebase.framework
|
|
Firebase Realtime Database | firebase_database.framework
|
|
| | firebase_auth.framework
|
|
| | firebase.framework
|
|
Firebase Remote Config | firebase_remote_config.framework
|
|
| | firebase.framework
|
|
Firebase Storage | firebase_storage.framework
|
|
| | firebase_auth.framework
|
|
| | firebase.framework
|
|
Firebase Analytics (stub) | firebase_analytics.framework
|
|
| | firebase.framework
|
|
Firebase Dynamic Links (stub) | firebase_dynamic_links.framework
|
|
| | firebase.framework
|
|
Google Mobile Ads (stub) | libfirebase_gma.a
|
|
| | libfirebase_app.a
|
|
Firebase Installations (stub) | firebase_installations.framework
|
|
| | firebase.framework
|
|
Firebase Cloud Messaging (stub) | firebase_messaging.framework
|
|
| | firebase.framework
|
|
|
|
The provided libraries have been tested using Xcode 14.1. When building C++
|
|
desktop apps on OS X, you will need to link the `gssapi_krb5` and `pthread`
|
|
system libraries, as well as the `CoreFoundation`, `Foundation`, `GSS`, and
|
|
`Security` OS X system frameworks (consult your compiler documentation for more
|
|
information).
|
|
|
|
#### Windows libraries
|
|
|
|
For Windows, library versions are provided depending on whether your project is
|
|
building in 32-bit (x86) or 64-bit (x64) mode, which Windows runtime environment
|
|
you are using (Multithreaded /MT or Multithreaded DLL /MD), and whether you are
|
|
targeting Release or Debug.
|
|
|
|
Feature | Required Libraries and Gradle Packages
|
|
------------------------------- | --------------------------------------
|
|
Firebase Authentication | firebase_auth.lib
|
|
| | firebase_app.lib
|
|
Firebase App Check | libfirebase_app_check.lib
|
|
| | libfirebase_app.lib
|
|
Cloud Firestore | firebase_firestore.lib
|
|
| | firebase_auth.lib
|
|
| | firebase_app.lib
|
|
Firebase Functions | firebase_functions.lib
|
|
| | firebase_auth.lib (optional)
|
|
| | firebase_app.lib
|
|
Firebase Realtime Database | firebase_database.lib
|
|
| | firebase_auth.lib
|
|
| | firebase_app.lib
|
|
Firebase Remote Config | firebase_remote_config.lib
|
|
| | firebase_app.lib
|
|
Firebase Storage | firebase_storage.lib
|
|
| | firebase_auth.lib
|
|
| | firebase_app.lib
|
|
Firebase Analytics (stub) | firebase_analytics.lib
|
|
| | firebase_app.lib
|
|
Firebase Dynamic Links (stub) | firebase_dynamic_links.lib
|
|
| | firebase_app.lib
|
|
Google Mobile Ads (stub) | firebase_gma.lib
|
|
| | firebase_app.lib
|
|
Firebase Installations (stub) | firebase_installations.lib
|
|
| | firebase_app.lib
|
|
Firebase Cloud Messaging (stub) | firebase_messaging.lib
|
|
| | firebase_app.lib
|
|
|
|
The provided libraries have been tested using Visual Studio 2019. When
|
|
building C++ desktop apps on Windows, you will need to link the following
|
|
Windows SDK libraries (consult your compiler documentation for more
|
|
information):
|
|
|
|
Firebase C++ Library | Windows SDK library dependencies
|
|
-------------------- | -----------------------------------------------------
|
|
Authentication | `advapi32, ws2_32, crypt32`
|
|
App Check | `advapi32, ws2_32, crypt32`
|
|
Firestore | `advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32, dbghelp, bcrypt`
|
|
Functions | `advapi32, ws2_32, crypt32, rpcrt4, ole32`
|
|
Realtime Database | `advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv, shell32`
|
|
Remote Config | `advapi32, ws2_32, crypt32, rpcrt4, ole32, icu`
|
|
Storage | `advapi32, ws2_32, crypt32`
|
|
|
|
## Getting Started
|
|
|
|
See our [setup guide](https://firebase.google.com/docs/cpp/setup) to get started
|
|
and download the prebuilt version of the Firebase C++ SDK.
|
|
|
|
## Source Code
|
|
|
|
The Firebase C++ SDK is open source. You can find the source code (and
|
|
information about building it) at
|
|
[github.com/firebase/firebase-cpp-sdk](https://github.com/firebase/firebase-cpp-sdk).
|
|
|
|
## Platform Notes
|
|
|
|
### iOS Method Swizzling
|
|
|
|
On iOS, some application events (such as opening URLs and receiving
|
|
notifications) require your application delegate to implement specific methods.
|
|
For example, receiving a notification may require your application delegate to
|
|
implement `application:didReceiveRemoteNotification:`. Because each iOS
|
|
application has its own app delegate, Firebase uses _method swizzling_, which
|
|
allows the replacement of one method with another, to attach its own handlers in
|
|
addition to any you may have implemented.
|
|
|
|
The Firebase Cloud Messaging library needs to attach
|
|
handlers to the application delegate using method swizzling. If you are using
|
|
these libraries, at load time, Firebase will identify your `AppDelegate` class
|
|
and swizzle the required methods onto it, chaining a call back to your existing
|
|
method implementation.
|
|
|
|
### Custom Android Build Systems
|
|
|
|
We currently provide generate\_xml\_from\_google\_services\_json.py to convert
|
|
google-services.json to .xml resources to be included in an Android application.
|
|
This script applies the same transformation that the Google Play Services Gradle
|
|
plug-in performs when building Android applications. Users who don't use Gradle
|
|
(e.g ndk-build, makefiles, Visual Studio etc.) can use this script to automate
|
|
the generation of string resources.
|
|
|
|
### ProGuard on Android
|
|
|
|
Many Android build systems use
|
|
[ProGuard](https://developer.android.com/studio/build/shrink-code.html) for
|
|
builds in Release mode to shrink application sizes and protect Java source code.
|
|
If you use ProGuard, you will need to add the files in libs/android/*.pro
|
|
corresponding to the Firebase C++ libraries you are using to your ProGuard
|
|
configuration.
|
|
|
|
For example, with Gradle, build.gradle would contain:
|
|
~~~
|
|
android {
|
|
[...other stuff...]
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
|
|
proguardFile file(project.ext.firebase_cpp_sdk_dir + "/libs/android/app.pro")
|
|
proguardFile file(project.ext.firebase_cpp_sdk_dir + "/libs/android/analytics.pro")
|
|
[...and so on, for each Firebase C++ library you are using.]
|
|
}
|
|
}
|
|
}
|
|
~~~
|
|
|
|
### Requiring Google Play services on Android
|
|
|
|
Many Firebase C++ libraries require
|
|
[Google Play services](https://developers.google.com/android/guides/overview) on
|
|
the user's Android device. If a Firebase C++ library returns
|
|
[`kInitResultFailedMissingDependency`](http://firebase.google.com/docs/reference/cpp/namespace/firebase)
|
|
on initialization, it means Google Play services is not available on the device
|
|
(it needs to be updated, reactivated, permissions fixed, etc.) and that Firebase
|
|
library cannot be used until the situation is corrected.
|
|
|
|
You can find out why Google Play services is unavailable (and try to fix it) by
|
|
using the functions in
|
|
[`google_play_services/availability.h`](http://firebase.google.com/docs/reference/cpp/namespace/google-play-services).
|
|
|
|
Optionally, you can use
|
|
[`ModuleInitializer`](http://firebase.google.com/docs/reference/cpp/class/firebase/module-initializer)
|
|
to initialize one or more Firebase libraries, which will handle prompting the
|
|
user to update Google Play services if required.
|
|
|
|
Note: Some libraries do not require Google Play services and don't return any
|
|
initialization status. These can be used without Google Play services. The table
|
|
below summarizes whether Google Play services is required by each Firebase C++
|
|
library.
|
|
|
|
Firebase C++ Library | Google Play services required?
|
|
-------------------- | ---------------------------------
|
|
Analytics | Not required
|
|
App Check | Not required
|
|
Cloud Messaging | Required
|
|
Auth | Required
|
|
Dynamic Links | Required
|
|
Firestore | Required
|
|
Functions | Required
|
|
Installations | Not Required
|
|
Instance ID | Required
|
|
Google Mobile Ads | Not required (usually; see below)
|
|
Realtime Database | Required
|
|
Remote Config | Required
|
|
Storage | Required
|
|
|
|
#### A note on Google Mobile Ads and Google Play services
|
|
|
|
Most versions of the Google Mobile Ads SDK for Android can work properly without
|
|
Google Play services. However, if you are using the
|
|
`com.google.android.gms:play-services-ads-lite` dependency instead of the
|
|
standard `com.google.firebase:firebase-ads` dependency, Google Play services
|
|
WILL be required in your specific case.
|
|
|
|
GMA initialization will only return `kInitResultFailedMissingDependency` when
|
|
Google Play services is unavailable AND you are using
|
|
`com.google.android.gms:play-services-ads-lite`.
|
|
|
|
### Desktop project setup
|
|
|
|
To use desktop workflow support, you must have an Android or iOS project set up
|
|
in the Firebase console.
|
|
|
|
If you have an Android project, you can simply use the `google-services.json`
|
|
file on desktop.
|
|
|
|
If you have an iOS project and don't wish to create an Android project, you can
|
|
use the included Python script `generate_xml_from_google_services_json.py
|
|
--plist` to convert your `GoogleService-Info.plist` file into a
|
|
`google-services-desktop.json` file.
|
|
|
|
By default, when your app initializes, Firebase will look for a file named
|
|
`google-services.json` or `google-services-desktop.json` in the current
|
|
directory. Ensure that one of these files is present, or call
|
|
`AppOptions::LoadFromJsonConfig()` before initializing Firebase to specify your
|
|
JSON configuration data directly.
|
|
|
|
### Note on Firebase C++ desktop support
|
|
|
|
Firebase C++ SDK desktop support is a **Beta** feature, and is intended for
|
|
workflow use only during the development of your app, not for publicly shipping
|
|
code.
|
|
|
|
## Release Notes
|
|
### 12.2.0
|
|
- Changes
|
|
- General (iOS): Update to Firebase Cocoapods version 11.0.0.
|
|
|
|
### 12.1.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 33.1.1.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.28.1.
|
|
- Analytics (iOS): Add support for
|
|
`InitiateOnDeviceConversionMeasurementWithHashedEmailAddress` and
|
|
`InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber`.
|
|
- GMA: The GMA C++ SDK is now deprecated. For more information, see the
|
|
[SDK documentation](https://developers.google.com/admob/cpp/sdk).
|
|
- Messaging (Android): Fixed a potential race condition on receiving
|
|
messages after cleanup.
|
|
- Messaging (iOS): Fixed an issue with notifications being lost if they
|
|
were received before Firebase Messaging was initialized.
|
|
|
|
### 12.0.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 33.0.0.
|
|
- General (Android): Updated minSdkVersion to 23, and targetSdkVersion
|
|
and compileSdkVersion to 34.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.25.0.
|
|
- General (iOS): Minimum iOS deployment target is now 13.0.
|
|
- Auth: Removed methods that were deprecated in v11.0.0.
|
|
- Storage (iOS): Fix invalid pointer in `StorageReference::GetFile()` when
|
|
running in a secondary thread
|
|
([#1570](https://github.com/firebase/firebase-cpp-sdk/issues/1570)).
|
|
|
|
### 11.10.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 32.8.1.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.24.0.
|
|
- General (iOS, tvOS, Desktop): iOS, tvOS, and macOS SDKs are now built
|
|
using Xcode 15.1.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 11.2.0 and
|
|
GoogleUserMessagingPlatform version 2.3.0.
|
|
- GMA (Android): Updated dependency to play-services-ads version 23.0.0 and
|
|
user-messaging-platform version 2.2.0.
|
|
- Storage (Desktop): Removed 5-minute timeout for uploads and downloads.
|
|
|
|
### 11.9.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 32.7.4.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.22.0.
|
|
- Auth: Add User::SendEmailVerificationBeforeUpdatingEmail, a new method to
|
|
verify and change the User's email.
|
|
- Auth: Deprecate the older method of updating emails, User::UpdateEmail.
|
|
|
|
### 11.8.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 32.7.1.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.20.0.
|
|
- Dynamic Links: The Dynamic Links SDK is now deprecated. See the [support
|
|
documentation](https://firebase.google.com/support/dynamic-links-faq)
|
|
for more information.
|
|
- Messaging (Android): Fixed minSdkVersion in the firebase_messaging.aar
|
|
manifest file.
|
|
|
|
### 11.7.0
|
|
- Changes
|
|
- General (Android): Firebase C++ on Android is now built using Android API
|
|
level 33 and Gradle 6.7.1.
|
|
- General (Android): Update to Firebase Android BoM version 32.7.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.19.0.
|
|
- Analytics: Updated the consent management API to include new consent signals.
|
|
- Auth: Fix a bug where an anonymous account can't be linked with
|
|
email password credential. For background, see [Email Enumeration
|
|
Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection)
|
|
- GMA (Android): Updated dependency to play-services-ads version 22.6.0.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 10.14.0.
|
|
|
|
### 11.6.0
|
|
- Changes
|
|
- General (iOS): Update to Firebase Cocoapods version 10.15.0.
|
|
- Firestore: Add support for disjunctions in queries (OR queries)
|
|
([#1453](https://github.com/firebase/firebase-cpp-sdk/pull/1453)).
|
|
- GMA: Added the User Messaging Platform (UMP) SDK, required for obtaining
|
|
consent from users before showing ads. See the [Get Started
|
|
Guide](https://firebase.google.com/docs/admob/cpp/privacy/) for more
|
|
information.
|
|
- GMA (iOS): Added a new Cocoapod dependency for the UMP SDK:
|
|
GoogleUserMessagingPlatform version 2.1.0.
|
|
- GMA (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.
|
|
|
|
### 11.5.0
|
|
- Changes
|
|
- General (iOS): Update to Firebase Cocoapods version 10.15.0.
|
|
- General (Android): Update to Firebase Android BoM version 32.3.1.
|
|
- General (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](https://support.google.com/google-ads/answer/12119136) API.
|
|
- Auth: Add Firebase Auth Emulator support. Set the environment variable
|
|
USE_AUTH_EMULATOR=yes (and optionally AUTH_EMULATOR_PORT, default 9099)
|
|
to connect to the local Firebase Auth Emulator.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 10.10.0.
|
|
- GMA (Android): Updated dependency to play-services-ads version 22.3.0.
|
|
|
|
### 11.4.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 32.2.2.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.13.0.
|
|
- General (iOS): 32-bit iOS builds (i386 and armv7) are no longer supported.
|
|
- General: Add FirebaseApp.GetApps(), to return the list of `firebase::App` instances.
|
|
- GMA (Android): Fixed a crash when initializing GMA without a Firebase App.
|
|
|
|
### 11.3.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 32.2.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.12.0.
|
|
- General (Desktop): Fixed an error loading google-services.json and
|
|
google-services-desktop.json from paths with international characters on
|
|
Windows.
|
|
- Auth (Android): Fixed an issue where VerifyPhoneNumber's internal
|
|
builder failed to create PhoneAuthOptions with certain compiler settings.
|
|
- Auth (iOS): Fixed an issue where functions that return AuthResult
|
|
were not including updated credentials when encountering errors.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 10.8.0.
|
|
- GMA (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.
|
|
- 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](https://github.com/firebase/firebase-cpp-sdk/pull/1364)).
|
|
|
|
### 11.2.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 32.1.1.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.11.0.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 10.6.0.
|
|
- App Check (Desktop): Fixed expired tokens being cached on 32-bit systems.
|
|
- Remote Config (Android): Fixed the ConfigUpdate classes being missing
|
|
from the proguard files.
|
|
- Remote Config (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.
|
|
|
|
### 11.1.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 32.1.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.10.0.
|
|
- General (Android): Fix for deadlock within JniResultCallback, commonly
|
|
seen within Messaging, but affecting other products as well.
|
|
- Database/Firestore (Desktop): Fixed a crash on Windows when the user's
|
|
home directory contains non-ANSI characters (Unicode above U+00FF).
|
|
- GMA (Android): Updated dependency to play-services-ads version 22.1.0.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 10.5.0.
|
|
- Storage (Desktop): Fixed a crash on Windows when uploading files from a
|
|
path containing non-ANSI characters (Unicode above U+00FF).
|
|
- Firestore: Added MultiDb support. ([#1321](https://github.com/firebase/firebase-cpp-sdk/pull/1321)).
|
|
|
|
### 11.0.1
|
|
- Changes
|
|
- Auth (iOS): Fixed a crash in `Credential::is_valid()` when an `AuthResult`
|
|
contains an invalid credential, such as when signing in anonymously.
|
|
|
|
### 11.0.0
|
|
- Changes
|
|
- General: Update minimum supported C++ standard to C++14.
|
|
- General (Android): Update to Firebase Android BoM version 32.0.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.9.0.
|
|
- General (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.
|
|
- GMA (Android): Updated dependency to play-services-ads version 22.0.0.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 10.4.0.
|
|
- Auth: 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 types `AuthResult` and `User` (rather than `SignInResult`
|
|
and `User *`). 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.)*
|
|
- Firestore: Added `Query::Count()`, which fetches the number of documents
|
|
in the result set without actually downloading the documents
|
|
([#1207](https://github.com/firebase/firebase-cpp-sdk/pull/1207)).
|
|
- Remote Config (Android/iOS): Added support for real-time config updates.
|
|
Use the new `AddOnConfigUpdateListener` API to get real-time updates.
|
|
Existing [`Fetch`](https://firebase.google.com/docs/reference/cpp/class/firebase/remote-config/remote-config#fetch)
|
|
and [`Activate`](https://firebase.google.com/docs/reference/cpp/class/firebase/remote-config/remote-config#activate)
|
|
APIs aren't affected by this change. To learn more, see
|
|
[Get started with Firebase Remote Config](https://firebase.google.com/docs/remote-config/get-started?platform=cpp#add-real-time-listener).
|
|
|
|
### 10.7.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.3.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.7.0.
|
|
- General: 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.
|
|
|
|
### 10.6.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.2.3.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.6.0.
|
|
|
|
### 10.5.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.2.1.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.5.0.
|
|
|
|
### 10.4.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.2.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.4.0.
|
|
- General (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](https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW24).
|
|
- Analytics: Add `analytics::SetConsent()` and `analytics::GetSessionId()`
|
|
APIs.
|
|
- GMA (Android): Updated dependency to play-services-ads version 21.4.0.
|
|
This new version requires Multidex to be enabled in your Android builds.
|
|
- GMA (iOS): Updated dependency to Google-Mobile-Ads-SDK version 9.14.0.
|
|
|
|
### 10.3.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.1.1.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.3.0.
|
|
|
|
### 10.2.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.1.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.2.0.
|
|
- General (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](https://opensource.google/documentation/policies/cplusplus-support#c_language_standard).
|
|
|
|
### 10.1.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.0.2.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.1.0.
|
|
- Firestore (Android): Reduce the number of JNI global references consumed
|
|
when creating or updating documents
|
|
([#1111](https://github.com/firebase/firebase-cpp-sdk/pull/1111)).
|
|
- Known Issues
|
|
- Linux x86 builds are broken since C++ SDK version 9.6.0. A fix is in
|
|
progress.
|
|
|
|
### 10.0.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 31.0.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 10.0.0.
|
|
- General: Remove unused headers for performance and test lab from the
|
|
package.
|
|
- Auth (Android/iOS): Deprecating `PhoneAuthProvider::kMaxTimeoutMs`. The
|
|
actual range is determined by the underlying SDK, ex.
|
|
[PhoneAuthOptions.Builder from Android SDK](https://firebase.google.com/docs/reference/android/com/google/firebase/auth/PhoneAuthOptions.Builder).
|
|
- GMA (iOS): Updated iOS dependency to Google Mobile Ads SDK version
|
|
9.11.0.1.
|
|
- 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.
|
|
|
|
### 9.6.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 30.5.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 9.6.0.
|
|
- GMA (iOS): Updated iOS dependency to Google Mobile Ads SDK version
|
|
9.9.0.
|
|
- GMA (Android): Updated Android dependency to Google Mobile Ads SDK
|
|
version 21.2.0.
|
|
|
|
### 9.5.0
|
|
- Changes
|
|
- General (Android): Update to Firebase Android BoM version 30.4.0.
|
|
- General (iOS): Update to Firebase Cocoapods version 9.5.0.
|
|
|
|
### 9.4.0
|
|
- Changes
|
|
- General (Desktop): Fixed an issue with embedded dependencies that could
|
|
cause duplicate symbol linker errors in conjunction with other libraries
|
|
([#989](https://github.com/firebase/firebase-cpp-sdk/issues/989)).
|
|
- GMA (iOS): Updated iOS dependency to Google Mobile Ads SDK version 9.7.0.
|
|
- General (Android, iOS, Linux 32-bit): Fixed an integer overflow which
|
|
could result in a crash or premature return when waiting for a `Future`
|
|
with a timeout
|
|
([#1042](https://github.com/firebase/firebase-cpp-sdk/pull/1042)).
|
|
|
|
### 9.3.0
|
|
- Changes
|
|
- General (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](https://github.com/firebase/firebase-cpp-sdk/pull/1021)).
|
|
|
|
### 9.2.0
|
|
- Changes
|
|
- GMA: Added the Google Mobile Ads SDK with updated support for AdMob. See
|
|
the [Get Started
|
|
Guide](https://firebase.google.com/docs/admob/cpp/quick-start) for more
|
|
information.
|
|
- AdMob: The AdMob SDK has been deprecated. Please update your app to
|
|
use the new Google Mobile Ads SDK which facilitates similar
|
|
functionality.
|
|
- General (Android): Switched over to Android BoM (Bill of Materials)
|
|
for dependency versions. This requires Gradle 5.
|
|
- Database (Desktop): If the app data directory doesn't exist, create it.
|
|
This fixes an issue with disk persistence on Linux.
|
|
- Messaging (Android): Fixed #973. Make sure all the resources are closed in
|
|
`RegistrationIntentService`.
|
|
- Firestore: Added `TransactionOptions` to control how many times a
|
|
transaction will retry commits before failing
|
|
([#966](https://github.com/firebase/firebase-cpp-sdk/pull/966)).
|
|
|
|
### 9.1.0
|
|
- Changes
|
|
- General (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.
|
|
- Functions: Add a new method `GetHttpsCallableFromURL`, to create callables
|
|
with URLs other than cloudfunctions.net.
|
|
- Analytics (iOS): Added InitiateOnDeviceConversionMeasurementWithEmail
|
|
function to facilitate the [on-device conversion
|
|
measurement](https://support.google.com/google-ads/answer/12119136) API.
|
|
- Firestore (Desktop): On Windows, you must additionally link against the
|
|
bcrypt and dbghelp system libraries.
|
|
|
|
### 9.0.0
|
|
- Changes
|
|
- General (iOS): Firebase C++ on iOS is now built using Xcode 13.3.1.
|
|
- General (Android): Firebase C++ on Android is now built against NDK
|
|
version r21e.
|
|
- General (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.
|
|
- Storage (Desktop): Set Content-Type HTTP header when uploading with
|
|
custom metadata.
|
|
|
|
### 8.11.0
|
|
- Changes
|
|
- Firestore/Database (Desktop): Upgrade LevelDb dependency to 1.23
|
|
([#886](https://github.com/firebase/firebase-cpp-sdk/pull/886)).
|
|
- Firestore/Database (Desktop): Enabled Snappy compression support
|
|
in LevelDb
|
|
([#885](https://github.com/firebase/firebase-cpp-sdk/pull/885)).
|
|
|
|
### 8.10.0
|
|
- Changes
|
|
- General (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.
|
|
- Storage (Desktop): Added retry logic to PutFile, GetFile, and other
|
|
operations.
|
|
|
|
### 8.9.0
|
|
- Changes
|
|
- General (iOS): Fixed an intermittent crash on iOS 15 caused by
|
|
constructing C++ objects during Objective-C's `+load` method.
|
|
([#706](https://github.com/firebase/firebase-cpp-sdk/pull/706))
|
|
([#783](https://github.com/firebase/firebase-cpp-sdk/pull/783))
|
|
- General: Internal changes to Mutex class.
|
|
|
|
### 8.8.0
|
|
- Changes
|
|
- General: Fixed a data race that could manifest as null pointer
|
|
dereference in `FutureBase::Release()`.
|
|
([#747](https://github.com/firebase/firebase-cpp-sdk/pull/747))
|
|
- General (iOS): iOS SDKs are now built using Xcode 12.4.
|
|
- General (Desktop): macOS SDKs are now built using Xcode 12.4.
|
|
- Auth (Desktop): Fixed a crash in `error_code()` when a request
|
|
is cancelled or times out.
|
|
([#737](https://github.com/firebase/firebase-cpp-sdk/issues/737))
|
|
- Firestore: Fix "unaligned pointers" build error on macOS Monterey
|
|
([#712](https://github.com/firebase/firebase-cpp-sdk/issues/712)).
|
|
- Messaging (Android): Fixed crash during termination.
|
|
([#739](https://github.com/firebase/firebase-cpp-sdk/pull/739))
|
|
([#745](https://github.com/firebase/firebase-cpp-sdk/pull/745))
|
|
- Messaging (Android): Fixed crash during initialization.
|
|
([#760](https://github.com/firebase/firebase-cpp-sdk/pull/760))
|
|
- Remote Config (Desktop): Fixed cache expiration time value used by
|
|
`RemoteConfig::FetchAndActivate()`.
|
|
([#767](https://github.com/firebase/firebase-cpp-sdk/pull/767))
|
|
|
|
### 8.7.0
|
|
- Changes
|
|
- Firestore: Released to general availability for Android and iOS (desktop
|
|
support remains in beta).
|
|
- General (Android): Minimum SDK version is now 19.
|
|
- General: Variant double type now support 64-bit while saving to json.
|
|
([#1133](https://github.com/firebase/quickstart-unity/issues/1133)).
|
|
- Analytics (tvOS): Analytics is now supported on tvOS.
|
|
- Firestore (iOS): Fix a crash when `Transaction.GetSnapshotAsync()` was
|
|
invoked after `FirebaseFirestore.TerminateAsync()`
|
|
([#8760](https://github.com/firebase/firebase-ios-sdk/pull/8760)).
|
|
|
|
### 8.6.0
|
|
- Changes
|
|
- General (Desktop): MacOS SDKs are now built using Xcode 12.2,
|
|
and include support for ARM-based Mac systems.
|
|
- General (iOS): iOS SDKs are now built using Xcode 12.2.
|
|
- Messaging (Android): Fixes an issue to receive token when
|
|
initialize the app.
|
|
([#667](https://github.com/firebase/firebase-cpp-sdk/pull/667)).
|
|
- Auth (Desktop): Fix a crash that would occur if parsing the JSON
|
|
response from the server failed
|
|
([#692](https://github.com/firebase/firebase-cpp-sdk/pull/692)).
|
|
|
|
### 8.5.0
|
|
- Changes
|
|
- General: Updating Android and iOS dependencies to the latest.
|
|
- General: Fixes an issue with generating Proguard files.
|
|
([#664](https://github.com/firebase/firebase-cpp-sdk/pull/664)).
|
|
|
|
### 8.4.0
|
|
- Changes
|
|
- General: Updating Android and iOS dependencies to the latest.
|
|
- Firestore: Added `operator==` and `operator!=` for `SnapshotMetadata`,
|
|
`Settings`, `QuerySnapshot`, `DocumentSnapshot`, `SetOptions`, and
|
|
`DocumentChange`.
|
|
|
|
### 8.3.0
|
|
- Changes
|
|
- General: This release adds tvOS C++ libraries that wrap the
|
|
community-supported Firebase tvOS SDK. `libs/tvos` contains
|
|
tvOS-specific libraries, and the `xcframeworks` 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.
|
|
- General: 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.
|
|
- Firestore: Removed the deprecated
|
|
`Firestore::RunTransaction(TransactionFunction*)` function. Please use
|
|
the overload that takes a `std::function` argument instead.
|
|
- Firestore: `FieldValue::Increment` functions are no longer guarded by
|
|
the `INTERNAL_EXPERIMENTAL` macro.
|
|
- Firestore: added more validation of invalid input.
|
|
- Firestore: added an `is_valid` method to the public API classes that can
|
|
be in an invalid state.
|
|
|
|
### 8.2.0
|
|
- Changes
|
|
- General (Android): Updated Flatbuffers internal dependency from version
|
|
1.9 to 1.12.
|
|
- Firestore: Deprecated the
|
|
`Firestore::RunTransaction(TransactionFunction*)` function. Please use
|
|
the overload that takes a `std::function` argument instead.
|
|
- Firestore: Removed the deprecated `EventListener` class.
|
|
- Firestore: Removed the deprecated overloads of `AddSnapshotListener` and
|
|
`AddSnapshotsInSyncListener` functions that take an `EventListener*`
|
|
argument. Please use the overloads that take a `std::function` argument
|
|
instead.
|
|
|
|
### 8.1.0
|
|
- Changes
|
|
- Firestore: Fixed a linker error when `DocumentChange::npos` was used.
|
|
([#474](https://github.com/firebase/firebase-cpp-sdk/pull/474)).
|
|
- Firestore: Added `Firestore::NamedQuery` that allows reading the queries
|
|
used to build a Firestore Data Bundle.
|
|
|
|
### 8.0.0
|
|
- Changes
|
|
- Analytics: Removed `SetCurrentScreen()` following its removal from iOS SDK
|
|
and deprecation from Android SDK. Please use `LogEvent` with ScreenView
|
|
event to manually log screen changes.
|
|
- General (Android): Firebase no longer supports STLPort. Please
|
|
[use libc++ instead](https://developer.android.com/ndk/guides/cpp-support#cs).
|
|
- General (Android): Firebase support for gnustl (also known as libstdc++)
|
|
is deprecated and will be removed in the next major release. Please use
|
|
libc++ instead.
|
|
- Instance Id: Removed support for the previously-deprecated Instance ID SDK.
|
|
- Remote Config: The previously-deprecated static methods have been removed.
|
|
Please use the new instance-based `firebase::remote_config::RemoteConfig`
|
|
API.
|
|
- Remote Config(Android): Fix for getting Remote Config instance for a
|
|
specific app object.
|
|
([#991](https://github.com/firebase/quickstart-unity/issues/991)).
|
|
- General (Android): Fixed a potential SIGABRT when an app was created
|
|
with a non-default app name on Android KitKat
|
|
([#429](https://github.com/firebase/firebase-cpp-sdk/pull/429)).
|
|
- 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.
|
|
- General (iOS): A Database URL is no longer required to be present in
|
|
GoogleService-Info.plist when not using the Real Time Database.
|
|
- Firestore: Added `Firestore::LoadBundle` to enable loading Firestore Data
|
|
Bundles into the SDK cache. `Firestore::NamedQuery` will be available in a
|
|
future release.
|
|
|
|
### 7.3.0
|
|
- Changes
|
|
- General (iOS): Update dependencies.
|
|
- General (Android): Fix a gradle error if ANDROID_NDK_HOME is not set.
|
|
|
|
### 7.2.0
|
|
- Changes
|
|
- General (Android): Firebase support for STLPort is deprecated and will
|
|
be removed in the next major release. Please
|
|
[use libc++ instead](https://developer.android.com/ndk/guides/cpp-support#cs).
|
|
- General (iOS): iOS SDKs are now built using Xcode 12.
|
|
- General (iOS): iOS SDKs are now providing XCFrameworks instead of
|
|
Frameworks.
|
|
- Database: Fixed a potential crash that can occur as a result of a race
|
|
condidtion when adding, removing and deleting `ValueListener`s or
|
|
`ChildListener`s rapidly.
|
|
- Database: Fixed a crash when setting large values on Windows and Mac
|
|
systems ([#517](https://github.com/firebase/quickstart-unity/issues/517)).
|
|
- General: Fixed rare crashes at application exit when destructors were
|
|
being executed
|
|
([#345](https://github.com/firebase/firebase-cpp-sdk/pull/345)).
|
|
- General (Android): Removed checks for Google Play services for Auth, Database,
|
|
Functions and Storage as the native Android packages no longer need it.
|
|
([#361](https://github.com/firebase/firebase-cpp-sdk/pull/361)).
|
|
|
|
### 7.1.1
|
|
- Changes
|
|
- General (Android): Use non-conflicting file names for embedded resources
|
|
in Android builds. This fixes segfault crashes on old Android devices
|
|
(Android 5 and below).
|
|
|
|
### 7.1.0
|
|
- Changes
|
|
- General (iOS): Re-enabled Bitcode in iOS builds
|
|
([#266][https://github.com/firebase/firebase-cpp-sdk/issues/266]).
|
|
- Auth: You can now specify a language for emails and text messages sent
|
|
from your apps using `UseAppLanguage()` or `set_language_code()`.
|
|
- Firestore: Fixed partial updates in `Update()` with
|
|
`FieldValue::Delete()`
|
|
([#882](https://github.com/firebase/quickstart-unity/issues/882)).
|
|
- Messaging (Android): Now uses `enqueueWork` instead of `startService`.
|
|
This fixes lost messages with data payloads received when the app
|
|
is in the background.
|
|
([#877](https://github.com/firebase/quickstart-unity/issues/877)
|
|
- Remote Config: Added `firebase::remote_config::RemoteConfig` class with
|
|
new instance-based APIs to better manage fetching config data.
|
|
- Remote Config: Deprecated old module-based API in favor of the new
|
|
instance-based API instead.
|
|
- Remote Config (Desktop): Fixed multiple definition of Nanopb symbols
|
|
in binary SDK
|
|
([#271][https://github.com/firebase/firebase-cpp-sdk/issues/271]).
|
|
|
|
### 7.0.1
|
|
- Changes
|
|
- Installations (Android): Fix incorrect STL variants, which fixes
|
|
a linker error on Android.
|
|
|
|
### 7.0.0
|
|
- Changes
|
|
- General (iOS): iOS SDKs are now built using Xcode 11.7.
|
|
- General (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 to
|
|
libs/windows/VS2019 to reflect this.
|
|
- General (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} to libs/linux/${arch}/legacy and
|
|
libs/linux/${arch}/cxx11 to reflect this.
|
|
- AdMob (Android): Fix a JNI error when initializing without Firebase App.
|
|
- Analytics: Remove deprecated SetMinimumSessionDuration call.
|
|
- Installations: Added Installations SDK. See [Documentations](http://firebase.google.com/docs/reference/cpp/namespace/firebase/installations) for
|
|
details.
|
|
- Instance Id: Marked Instance Id as deprecated.
|
|
- Messaging: Added getToken, deleteToken apis.
|
|
- Messaging: Removed deprecated Send() function.
|
|
- Messaging: raw_data has been changed from a std::string to a
|
|
std::vector<uint8_t>, and can now be populated.
|
|
- Firestore: Added support for `Query::WhereNotEqualTo` and
|
|
`Query::WhereNotIn`.
|
|
- Firestore: Added support for `Settings::set_cache_size_bytes` and
|
|
`Settings::cache_size_bytes`.
|
|
- Firestore: `Query` methods that return new `Query` objects are now
|
|
`const`.
|
|
- Firestore: Added new internal HTTP headers to the gRPC connection.
|
|
- Firestore: Fixed a crash when writing to a document after having been
|
|
offline for long enough that the auth token expired
|
|
([#182](https://github.com/firebase/firebase-cpp-sdk/issues/182)).
|
|
|
|
### 6.16.1
|
|
- Changes
|
|
- Database (Desktop): Added a function to create directories recursively
|
|
for persistent storage that fixes segfaults.
|
|
- Database (Desktop): Fixed a problem with missing symbols on Windows.
|
|
|
|
### 6.16.0
|
|
- Changes
|
|
- Database (Desktop): Enabled offline persistence.
|
|
- Auth: Fixed compiler error related to SignInResult.
|
|
- Firestore: Defaulted to calling listeners and other callbacks on a
|
|
dedicated thread. This avoids deadlock when using Firestore without
|
|
an event loop on desktop platforms.
|
|
- Firestore: Added `Error::kErrorNone` as a synonym for `Error::kErrorOk`,
|
|
which is more consistent with other Firebase C++ SDKs.
|
|
- Messaging (Android): Updated library to be compatible with Android O,
|
|
which should resolve a IllegalStateException that could occur under
|
|
certain conditions.
|
|
- Messaging: Deprecated the `Send` function.
|
|
- Firestore: Added `error_message` parameter to snapshot listener
|
|
callbacks.
|
|
- AdMob: Handling IllegalStateException when creating and loading
|
|
interstitial ads. Added `ConstantsHelper.CALLBACK_ERROR_UNKNOWN` as a
|
|
fallback error.
|
|
|
|
### 6.15.1
|
|
|
|
- Changes
|
|
|
|
- Firestore: all members of `Error` enumeration are now prefixed with
|
|
`kError`; for example, `Error::kUnavailable` is now
|
|
`Error::kErrorUnavailable`, which is more consistent with other Firebase
|
|
C++ SDKs.
|
|
- Firestore: Firestore can now be compiled on Windows even in presence of
|
|
`min` and `max` macros defined in `<windows.h>`.
|
|
- Fixed an issue that warns about Future handle not released properly.
|
|
|
|
### 6.15.0
|
|
|
|
- Overview
|
|
- Fixed an issue whent creating Apps, and various Firestore changes.
|
|
- Changes
|
|
- Firestore: removed `*LastResult` functions from the public API. Please
|
|
use the futures returned by the async methods directly instead.
|
|
- Firestore: dropped the `From` prefix from the static functions in
|
|
`FieldValue`; for example, `FieldValue::FromInteger` is now just
|
|
`FieldValue::Integer`.
|
|
- Firestore: `CollectionReference::id` now returns a const reference.
|
|
- Firestore: Fixed absl `time_internal` linker error on Windows.
|
|
- Firestore: changed the signature of the callback passed to
|
|
`Firestore::RunTransaction` to pass the parameters by mutable reference,
|
|
not by pointer. This is to indicate that these parameters are never
|
|
null.
|
|
- App: Fixed an assert creating a custom App when there is no default App.
|
|
|
|
### 6.14.1
|
|
|
|
- Changes
|
|
- Auth (iOS): 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.
|
|
|
|
### 6.14.0
|
|
|
|
- Changes
|
|
- Firestore: `Firestore::set_logging_enabled` is replaced by
|
|
`Firestore::set_log_level` for consistency with other Firebase C++ APIs.
|
|
- Firestore: added an overload of `Firestore::CollectionGroup` that takes
|
|
a pointer to `const char`.
|
|
- Firestore: `Firestore::set_settings` now accepts the argument by value.
|
|
|
|
### 6.12.0
|
|
- Overview
|
|
- Added experimental support for Cloud Firestore SDK.
|
|
- Changes
|
|
- Firestore: Experimental release of Firestore is now available on all
|
|
supported platforms.
|
|
|
|
### 6.11.0
|
|
|
|
- Overview
|
|
- Updated dependencies, changed minimum Xcode, and fixed an issue in
|
|
Database handling Auth token revocation.
|
|
- Changes
|
|
- General (iOS): Minimum Xcode version is now 10.3.
|
|
- General: When creating an App, the project_id from the default App is
|
|
used if one is not provided.
|
|
- Database (Desktop): Fixed that database stops reconnecting to server
|
|
after the auth token is revoked.
|
|
|
|
### 6.10.0
|
|
|
|
- Overview
|
|
- Auth bug fixes.
|
|
- Changes
|
|
- Auth: Reverted the API of an experimental FederatedAuthHandler callback
|
|
handler.
|
|
- Auth (iOS): Enabled the method OAuthProvider.GetCredential. This method
|
|
takes a nonce parameter as required by Apple Sign-in.
|
|
- General (iOS): Updated the CMakeLists.txt to link static libraries
|
|
stored under libs/ios/universal for iOS targets
|
|
|
|
### 6.9.0
|
|
|
|
- Overview
|
|
- Updated dependencies, added support for Apple Sign-in to Auth, support
|
|
for signing-in using a 3rd party web providers and configuration of
|
|
BigQuery export in Messaging.
|
|
- Changes
|
|
- Auth: Added API for invoking Auth SignInWithProvider and User
|
|
LinkWithProvider and ReauthenticateWithProvider for sign in with third
|
|
party auth providers.
|
|
- Auth: Added constant kProviderId strings to auth provider classes.
|
|
- Auth (iOS): Added support for linking Apple Sign-in credentials.
|
|
- Messaging (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.
|
|
|
|
### 6.8.0
|
|
|
|
- Overview
|
|
- Updated dependencies, added compiler/stdlib check, fixed issue in Admob
|
|
and fixed resource generation issue with python3.
|
|
- Changes
|
|
- App (Linux): Added compiler/stdlib check to ensure both the developer's
|
|
executable and firebase library are compiled with the same compiler and
|
|
stdlib.
|
|
- Admob (Android): Fixed a potentially non thread safe operation in the
|
|
destruction of BannerViews.
|
|
- General: Fixed an issue where resource generation from
|
|
google-services.json would fail if python3 was used to execute the
|
|
resource generation script.
|
|
|
|
### 6.7.0
|
|
|
|
- Overview
|
|
- Updated dependencies, fixed issues in Analytics, Database, Storage, and
|
|
App.
|
|
- Changes
|
|
- App: Added noexcept to move constructors to ensure STL uses move where
|
|
possible.
|
|
- Storage (iOS/Android): Fixed an issue where Storage::GetReferenceFromUrl
|
|
would return an invalid StorageReference.
|
|
- Database: Fixed an issue causing timestamps to not be populated
|
|
correctly when using DatabaseReference::UpdateChildren().
|
|
- Database (Desktop): Fixed an issue preventing listener events from being
|
|
triggered after DatabaseReference::UpdateChildren() is called.
|
|
- Database (Desktop): Functions that take const char* parameters will now
|
|
fail gracefully if passed a null pointer.
|
|
- Database (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.
|
|
- App (Windows): Fixed bug where literal value 0 will call string
|
|
constructor for Variant class.
|
|
- Storage (Desktop): Changed url() to return the empty string if the
|
|
Storage instance was created with the default (null) URL.
|
|
- App: Added small string optimisation for variant.
|
|
- App: Reduced number of new/delete for variant if copying same type
|
|
- App: Ensure map sort order for variant is consistent.
|
|
- Database (Desktop): Fixed an issue that could result in an incorrect
|
|
snapshot being passed to listeners under specific circumstances.
|
|
- Analytics (iOS): Fixed the racy behavior of
|
|
`analytics::GetAnalyticsInstanceId()` after calling
|
|
`analytics::ResetAnalyticsData()`.
|
|
- Database (Desktop): Fixed ordering issue of children when using OrderBy
|
|
on double or int64 types with large values
|
|
|
|
### 6.6.1
|
|
|
|
- Overview
|
|
- Fixed an issue with Future having an undefined reference.
|
|
- Changes
|
|
- General: Fixed a potential undefined reference in Future::OnCompletion.
|
|
|
|
### 6.6.0
|
|
|
|
- Overview
|
|
- Update dependencies, fixed issues in Auth, Database and RemoteConfig
|
|
- Changes
|
|
- Auth (Android): Fixed assert when not using default app instance.
|
|
- Auth (Desktop): Fixed not loading provider list from cached user data.
|
|
- Database (Desktop): Fixed a crash that could occur when trying to keep a
|
|
location in the database synced when you do not have permission.
|
|
- Database (Desktop): Queries on locations in the database with query
|
|
rules now function properly, instead of always returning "Permission
|
|
denied".
|
|
- Database (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.
|
|
|
|
### 6.5.0
|
|
|
|
- Overview
|
|
- Updated dependencies, and improved logging for Auth and Database.
|
|
- Changes
|
|
- Auth (Linux): Improved error logging if libsecret (required for login
|
|
persistence) is not installed on Linux.
|
|
- Database: The database now supports setting the log level independently
|
|
of the system level logger.
|
|
|
|
### 6.4.0
|
|
|
|
- Overview
|
|
- Updated dependencies, fixed issues with Futures and Auth persistence,
|
|
and fixed a crash in Database.
|
|
- Changes
|
|
- General: Fixed an issue causing Futures to clear their data even if a
|
|
reference was still being held.
|
|
- Auth (Desktop): Fixed an issue with updated user info not being
|
|
persisted.
|
|
- Database (Desktop): Fixed a crash when saving a ServerTimestamp during a
|
|
transaction.
|
|
|
|
### 6.3.0
|
|
|
|
- Overview
|
|
- Bug fixes.
|
|
- Changes
|
|
- General (iOS/Android): Fixed a bug that allows custom firebase::App
|
|
instances to be created after the app has been restarted.
|
|
- Auth (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.
|
|
- Auth (iOS): Fixed an exception in firebase::auth::VerifyPhoneNumber.
|
|
- Auth (iOS): Stopped Auth from hanging on destruction if any local
|
|
futures remain in scope.
|
|
- Database (desktop): Fixed an issue that could cause a crash when
|
|
updating the descendant of a location with a listener attached.
|
|
|
|
### 6.2.2
|
|
|
|
- Overview
|
|
- Bug fixes.
|
|
- Changes
|
|
- Auth (desktop): After loading a persisted user data, ensure token is not
|
|
expired.
|
|
- Auth (desktop): Ensure Database, Storage and Functions do not use an
|
|
expired token after it's loaded from persistent storage.
|
|
- Database (desktop): Fixed DatabaseReference::RunTransaction() sending
|
|
invalid data to the server which causes error message "Error on incoming
|
|
message" and freeze.
|
|
|
|
### 6.2.0
|
|
|
|
- Overview
|
|
- Added support for custom domains to Dynamic Links, and fixed issues in
|
|
Database and Instance ID.
|
|
- Changes
|
|
- General: 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.
|
|
- Database: Added a way to configure log verbosity of Realtime Database
|
|
instances.
|
|
|
|
### 6.1.0
|
|
|
|
- Overview
|
|
- Added Auth credential persistence on Desktop, fixed issues in Auth and
|
|
Database, and added additional information to Messaging notifications.
|
|
- Changes
|
|
- Auth (Desktop): User's credentials will now persist between sessions.
|
|
See the
|
|
[documentation](http://firebase.google.com/docs/auth/cpp/manage-users#persist_a_users_credential)
|
|
for more information.
|
|
- Auth (Desktop): 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.
|
|
- Auth (Desktop): Fixed an issue where Database/Functions/Storage might
|
|
not use the latest auth token immediately after sign-in.
|
|
- Auth: Fixed an issue where an error code could get reported incorrectly
|
|
on Android.
|
|
- Database (Desktop): Fixed an issue that could cause a crash during
|
|
shutdown.
|
|
- Database (iOS): Fixed a race condition that could cause a crash when
|
|
cleaning up database listeners on iOS.
|
|
- Database (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.
|
|
- Messaging (Android): Added channel_id to Messaging notifications.
|
|
|
|
### 6.0.0
|
|
|
|
- Overview
|
|
- Fixed issues in Auth and Messaging, removed Firebase Invites, removed
|
|
deprecated functions in Firebase Remote Config, and deprecated a
|
|
function in Firebase Analytics.
|
|
- Changes
|
|
- Updated
|
|
[Firebase iOS](https://firebase.google.com/support/release-notes/ios#6.0.0)
|
|
and
|
|
[Firebase Android](https://firebase.google.com/support/release-notes/ios#2019-05-07)
|
|
dependencies.
|
|
- Auth: Fixed a race condition updating the current user.
|
|
- Messaging (iOS/Android): Fix an issue where Subscribe and Unsubscribe
|
|
never returned if the API was configured not to receive a registration
|
|
token.
|
|
- Invites: Removed Firebase Invites library, as it is no longer supported.
|
|
- Remote Config: Removed functions using config namespaces.
|
|
- Analytics: Deprecated SetMinimumSessionDuration.
|
|
- Known Issues
|
|
- To work around a incompatible dependency, AdMob for Android temporarily
|
|
requires an additional dependency on
|
|
com.google.android.gms:play-services-measurement-sdk-api:16.5.0
|
|
|
|
### 5.7.0
|
|
|
|
- Overview
|
|
- Deprecated functions in Remote Config.
|
|
- Changes
|
|
- Remote Config: Config namespaces are now deprecated. You'll need to
|
|
switch to methods that use the default namespace.
|
|
- Known Issues
|
|
- To work around a incompatible dependency, AdMob for Android temporarily
|
|
requires an additional dependency on
|
|
com.google.android.gms:play-services-measurement-sdk-api:16.4.0
|
|
|
|
### 5.6.1
|
|
|
|
- Overview
|
|
- Fixed race condition on iOS SDK startup.
|
|
- Changes
|
|
- General (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.
|
|
|
|
### 5.6.0
|
|
|
|
- Overview
|
|
- Released an open-source version, added Game Center sign-in to Auth,
|
|
enhanced Database on desktop, and fixed a crash when deleting App.
|
|
- Changes
|
|
- Firebase C++ is now
|
|
[open source](https://github.com/firebase/firebase-cpp-sdk).
|
|
- Auth (iOS): Added Game Center authentication.
|
|
- Database (Desktop): Reworked how cached server values work to be more in
|
|
line with mobile implementations.
|
|
- Database (Desktop): Simultaneous transactions are now supported.
|
|
- Database (Desktop): The special Timestamp ServerValue is now supported.
|
|
- Database (Desktop): KeepSynchronized is now supported.
|
|
- App, Auth, Database, Remote Config, Storage: Fixed a crash when deleting
|
|
`firebase::App` before deleting other Firebase subsystems.
|
|
|
|
### 5.5.0
|
|
|
|
- Overview
|
|
- Deprecated Firebase Invites and updated how Android dependencies are
|
|
included.
|
|
- Changes
|
|
- General (Android): Added a gradle file to the SDK that handles adding
|
|
Firebase Android dependencies to your Firebase C++ apps. See the
|
|
[Firebase C++ Samples](https://github.com/firebase/quickstart-cpp) for
|
|
example usage.
|
|
- Invites: Firebase Invites is deprecated. Please refer to
|
|
https://firebase.google.com/docs/invites for details.
|
|
|
|
### 5.4.4
|
|
|
|
- Overview
|
|
- Fixed a bug in Cloud Functions on Android, and AdMob on iOS.
|
|
- Changes
|
|
- Cloud Functions (Android): Fixed an issue with error handling.
|
|
- AdMob (iOS): Fixed an issue with Rewarded Video ad unit string going out
|
|
of scope.
|
|
|
|
### 5.4.3
|
|
|
|
- Overview
|
|
- Bug fix for Firebase Storage on iOS.
|
|
- Changes
|
|
- Storage (iOS): Fixed an issue when downloading files with `GetBytes`.
|
|
|
|
### 5.4.2
|
|
|
|
- Overview
|
|
- Removed a spurious error message in Auth on Android.
|
|
- Changes
|
|
- Auth (Android): Removed an irrelevant error about the Java class
|
|
FirebaseAuthWebException.
|
|
|
|
### 5.4.0
|
|
|
|
- Overview
|
|
- Bug fix for link shortening in Dynamic Links and a known issue in
|
|
Database on Desktop.
|
|
- Changes
|
|
- Dynamic Links (Android): Fixed short link generation failing with "error
|
|
8".
|
|
- Known Issues
|
|
- 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.
|
|
|
|
### 5.3.1
|
|
|
|
- Overview
|
|
- Updated iOS and Android dependency versions and a bug fix for Invites.
|
|
- Changes
|
|
- Invites (Android): Fixed an exception when the Android Minimum Version
|
|
code option is used on the Android.
|
|
|
|
### 5.3.0
|
|
|
|
- Overview
|
|
- Fixed bugs in Database and Functions; changed minimum Xcode version to
|
|
9.4.1.
|
|
- Changes
|
|
- General (iOS): Minimum Xcode version is now 9.4.1.
|
|
- Functions (Android): Fixed an issue when a function returns an array.
|
|
- Database (Desktop): Fixed issues in ChildListener.
|
|
- Database (Desktop): Fixed crash that can occur if Database is deleted
|
|
while asynchronous operations are still in progress.
|
|
- Known Issues
|
|
- Dynamic Links (Android): Shortening dynamic links fails with "Error 8".
|
|
|
|
### 5.2.1
|
|
|
|
- Overview
|
|
- Fixed bugs in Auth and Desktop.
|
|
- Changes
|
|
- Database (Desktop): Fixed support for `ChildListener` when used with
|
|
`Query::EqualTo()`, `Query::StartAt()`, `Query::EndAt()`,
|
|
`Query::LimitToFirst()` and `Query::LimitToLast()`.
|
|
- Database: Fixed a crash in DatabaseReference/Query copy assignment
|
|
operator and copy constructor.
|
|
- Auth, Database: Fixed a race condition returning Futures when calling
|
|
the same method twice in quick succession.
|
|
|
|
### 5.2.0
|
|
|
|
- Overview
|
|
- Changes to Database, Functions, Auth, and Messaging.
|
|
- Changes
|
|
- Database: Added a version of `GetInstance` that allows passing in the
|
|
URL of the database to use.
|
|
- Functions: Added a way to specify which region to run the function in.
|
|
- Messaging: Changed `Subscribe` and `Unsubscribe` to return a Future.
|
|
- Auth (Android): Fixed a crash in `User::UpdatePhoneNumberCredential()`.
|
|
- General (Android): Fixed a null reference in the Google Play Services
|
|
availability checker.
|
|
|
|
### 5.1.1
|
|
|
|
- Overview
|
|
- Updated Android and iOS dependency versions only.
|
|
|
|
### 5.1.0
|
|
|
|
- Overview
|
|
- Changes to Analytics, Auth, and Database; and added support for Cloud
|
|
Functions for Firebase.
|
|
- Changes
|
|
- Analytics: Added `ResetAnalyticsData()` to clear all analytics data for
|
|
an app from the device.
|
|
- Analytics: Added `GetAppInstanceId()` which allows developers to
|
|
retrieve the current app's analytics instance ID.
|
|
- Auth: Linking a credential with a provider that has already been linked
|
|
now produces an error.
|
|
- Auth (iOS): Fixed crashes in User::LinkAndRetrieveDataWithCredential()
|
|
and User::ReauthenticateAndRetrieveData().
|
|
- Auth (iOS): Fixed photo URL never returning a value on iOS.
|
|
- Auth (Android): Fixed setting profile photo URL with UpdateUserProfile.
|
|
- Database: Added support for ServerValues in SetPriority methods.
|
|
- Functions: Added support for Cloud Functions for Firebase on iOS,
|
|
Android, and desktop.
|
|
|
|
### 5.0.0
|
|
|
|
- Overview
|
|
- Renamed the Android and iOS libraries to include firebase in their name,
|
|
removed deprecated methods in App, AdMob, Auth, Database, and Storage,
|
|
and exposed new APIs in Dynamic Links and Invites.
|
|
- Changes
|
|
- General (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.
|
|
- General (Android): Improved error handling when device is out of space.
|
|
- App: Removed deprecated accessor methods from Future.
|
|
- AdMob: Removed deprecated accessor methods from BannerView and
|
|
InterstitialAd.
|
|
- Auth: Removed deprecated accessors from Auth, Credential, User, and
|
|
UserInfoInterface, including User::refresh_token().
|
|
- 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.
|
|
- 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.
|
|
- Storage: Removed deprecated accessors from StorageReference.
|
|
- Storage: Removed Metadata::download_url() and Metadata::download_urls().
|
|
Please use StorageReference::GetDownloadUrl() instead.
|
|
- Messaging: 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().
|
|
|
|
### 4.5.1
|
|
|
|
- Overview
|
|
- Fixed bugs in Database (Desktop) and Remote Config and exposed new APIs
|
|
in Auth on Desktop and Messaging.
|
|
- Changes
|
|
- Messaging: Added the SetAutoTokenRegistrationOnInitEnabled() and
|
|
IsAutoTokenRegistrationOnInitEnabled() methods to enable or disable
|
|
auto-token generation.
|
|
- Auth (Desktop): Added support for accessing user metadata.
|
|
- Database (Desktop): Fixed a bug to make creation of database instances
|
|
with invalid URLs return NULL.
|
|
- Database (Desktop): Fixed an issue where incorrect values could be
|
|
passed to OnChildAdded.
|
|
- Remote Config: Fixed a bug causing incorrect reporting of success or
|
|
failure during a Fetch().
|
|
|
|
### 4.5.0
|
|
|
|
- Overview
|
|
- Desktop workflow support for some features, Google Play Games
|
|
authentication on Android, and changes to AdMob, Auth, and Storage.
|
|
- Changes
|
|
- Auth, Realtime Database, Remote Config, Storage (Desktop): Stub
|
|
implementations have been replaced with functional desktop
|
|
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.
|
|
- Auth (Android): Added Google Play Games authentication.
|
|
- Auth: Fixed a race condition initializing/destroying Auth instances.
|
|
- Storage: Added MD5 hash to Metadata.
|
|
- Storage: Fixed a crash when deleting listeners and other object
|
|
instances.
|
|
- Storage: Controller can now be used from any thread.
|
|
- Storage (iOS): Fixed incorrect content type when uploading.
|
|
- Known Issues
|
|
- When using Firebase Realtime Database on desktop, only one Transaction
|
|
may be run on a given subtree at the same time.
|
|
- When using Firebase Realtime Database on desktop, data persistence is
|
|
not available.
|
|
|
|
### 4.4.3
|
|
|
|
- Overview
|
|
- Fixed linking bug in App.
|
|
- Changes
|
|
- App (iOS): Removed unresolved symbols in the App library that could
|
|
cause errors when forcing resolution.
|
|
|
|
### 4.4.2
|
|
|
|
- Overview
|
|
- Fixed bugs in Dynamic Links, Invites, Remote Config and Storage and
|
|
fixed linking issues with the Windows and Linux stub libraries.
|
|
- Changes
|
|
- Dynamic Links (iOS): Now fetches the invite ID when using universal
|
|
links.
|
|
- Dynamic Links (iOS): Fixed crash on failure of dynamic link completion.
|
|
- Dynamic Links (iOS): Fixed an issue where some errors weren't correctly
|
|
reported.
|
|
- Invites: Fixed SendInvite never completing in the stub implementation.
|
|
- Remote Config (iOS): Fixed an issue where some errors weren't correctly
|
|
reported.
|
|
- Storage: Fixed Metadata::content_language returning the wrong data.
|
|
- Storage (iOS): Reference paths formats are now consistent with other
|
|
platforms.
|
|
- Storage (iOS): Fixed an issue where trying to upload to a non-existent
|
|
path would not complete the Future.
|
|
- Storage (iOS): Fixed a crash when a download fails.
|
|
- General (Windows): Updated all static libs to suppport different C
|
|
runtime libraries and correspondingly updated the package directory
|
|
structure.
|
|
- Linux: Fixed linking problems with all of the C++ stub libraries.
|
|
|
|
### 4.4.1
|
|
|
|
- Overview
|
|
- Bug fixes for Realtime Database and Instance ID.
|
|
- Changes
|
|
- 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.
|
|
|
|
### 4.4.0
|
|
|
|
- Overview
|
|
- Support for Instance ID.
|
|
- Changes
|
|
- Instance ID: Added Instance ID library.
|
|
|
|
### 4.3.0
|
|
|
|
- Overview
|
|
- Bug fix for Remote Config and a new feature for Auth.
|
|
- Changes
|
|
- Auth: Added support for accessing user metadata.
|
|
- Remote Config (Android): Fixed remote_config::ValueSource conversion.
|
|
|
|
### 4.2.0
|
|
|
|
- Overview
|
|
- Bug fixes for Analytics, Database, and Messaging; and updates for Auth
|
|
and Messaging.
|
|
- Changes
|
|
- Analytics (iOS): Fixed a bug which prevented the user ID and user
|
|
properties being cleared.
|
|
- Database (Android): Fixed MutableData::children_count().
|
|
- Messaging (Android): Fixed a bug which prevented the message ID field
|
|
being set.
|
|
- Auth: Failed operations now return more specific error codes.
|
|
- Auth (iOS): Phone Authentication no longer requires push notifications.
|
|
When push notifications aren't available, reCAPTCHA verification is used
|
|
instead.
|
|
- Messaging: Messages sent to users can now contain a link URL.
|
|
|
|
### 4.1.0
|
|
|
|
- Overview
|
|
- Bug fixes for AdMob, Auth, Messaging, Database, Storage, and Remote
|
|
Config, and added features for Future's OnCompletion callbacks and
|
|
Database transaction callbacks.
|
|
- Changes
|
|
- General: Futures are now invalidated when their underlying Firebase API
|
|
is destroyed.
|
|
- General: Added std::function support to Future::OnCompletion, to allow
|
|
use of C++11 lambdas with captures.
|
|
- AdMob (iOS): Fixed a crash if a BannerView is deleted while a call to
|
|
Destroy() is still pending.
|
|
- Auth (Android): Now assert fails if you call GetCredential without an
|
|
Auth instance created.
|
|
- Database: DataSnapshot, DatabaseReference, Query, and other objects are
|
|
invalidated when their Database instance is destroyed.
|
|
- Database: Added a context pointer to DatabaseReference::RunTransaction,
|
|
as well as std::function support to allow use of C++11 lambdas with
|
|
captures.
|
|
- Messaging (Android): Fixed a bug where message_type was not set in the
|
|
Message struct.
|
|
- Messaging (iOS): Fixed a race condition if a message is received before
|
|
Firebase Cloud Messaging is initialized.
|
|
- Messaging (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.
|
|
- Storage: StorageReference objects are invalidated when their Storage
|
|
instance is destroyed.
|
|
- Known Issues
|
|
- When building on Android using STLPort, the std::function versions of
|
|
Future::OnCompletion and DatabaseReference::RunTransaction are not
|
|
available.
|
|
|
|
### 4.0.4
|
|
|
|
- Changes
|
|
- Messaging (Android): Fixed a bug resulting in Messages not having their
|
|
message_type field populated.
|
|
|
|
### 4.0.3
|
|
|
|
- Overview
|
|
- Bug fixes for Dynamic Links, Messaging and iOS SDK compatibility.
|
|
- Changes
|
|
- General (iOS): Fixed an issue which resulted in custom options not being
|
|
applied to firebase::App instances.
|
|
- General (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.
|
|
- Messaging (iOS): Fixed message handling when messages they are received
|
|
via the direct channel to the FCM backend (i.e not via APNS).
|
|
|
|
### 4.0.2
|
|
|
|
- Overview
|
|
- Bug fixes for Analytics, Auth, Dynamic Links, and Messaging.
|
|
- Changes
|
|
- Analytics (Android): Fix SetCurrentScreen to work from any thread.
|
|
- Auth (iOS): Fixed user being invalidated when linking a credential
|
|
fails.
|
|
- Dynamic Links: Fixed an issue which caused an app to crash or not
|
|
receive a Dynamic Link if the link is opened when the app is installed
|
|
and not running.
|
|
- Messaging (iOS): Fixed a crash when no Listener is set.
|
|
- Messaging: Fixed Listener::OnTokenReceived occasionally being called
|
|
twice with the same token.
|
|
|
|
### 4.0.1
|
|
|
|
- Overview
|
|
- Bug fixes for Dynamic links and Invites on iOS and Cloud Messaging on
|
|
Android and iOS.
|
|
- Changes
|
|
- Cloud Messaging (Android): Fixed an issue where Terminate was not
|
|
correctly shutting down the Cloud Messaging library.
|
|
- Cloud Messaging (iOS): Fixed an issue where library would crash on start
|
|
up if there was no registration token.
|
|
- Dynamic Links & Invites (iOS): Fixed an issue that resulted in apps not
|
|
receiving a link when opening a link if the app is installed and not
|
|
running.
|
|
|
|
### 4.0.0
|
|
|
|
- Overview
|
|
- Added support for phone number authentication, access to user metadata,
|
|
a standalone dynamic library and bug fixes.
|
|
- Changes
|
|
- Auth: Added support for phone number authentication.
|
|
- Auth: Added the ability to retrieve user metadata.
|
|
- Auth: 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.
|
|
- Messaging (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.
|
|
- Messaging (iOS): Fixed interoperation with other users of local
|
|
notifications.
|
|
- General (Android): Fixed crash in some circumstances after resolving
|
|
dependencies by updating Google Play services.
|
|
|
|
### 3.1.2
|
|
|
|
- Overview
|
|
- Bug fixes for Auth.
|
|
- Changes
|
|
- Auth: Fixed a crash caused by a stale memory reference when a
|
|
firebase::auth::Auth object is destroyed and then recreated for the same
|
|
App object.
|
|
- Auth: Fixed potential memory corruption when AuthStateListener is
|
|
destroyed. ### 3.1.1
|
|
- Overview
|
|
- Bug fixes for Auth, Invites, Messaging, and Storage, plus a general fix.
|
|
- Changes
|
|
- General (Android): Fixed Google Play Services updater crash when
|
|
clicking outside of the dialog on Android 4.x devices.
|
|
- Auth: Fixed user being invalidated when linking a credential fails.
|
|
- Auth: Deprecated User::refresh_token().
|
|
- Messaging: Fixed incorrectly notifying the app of a message when a
|
|
notification is received while the app is in the background and the app
|
|
is then opened by via the app icon rather than the notification.
|
|
- Invites (iOS): Fixed an issue which resulted in the app delegate method
|
|
application:openURL:sourceApplication:annotation: not being called when
|
|
linking the invites library.
|
|
- Storage: Fixed a bug that prevented the construction of Metadata without
|
|
a storage reference.
|
|
|
|
### 3.1.0
|
|
|
|
- Overview
|
|
- Added support for multiple storage buckets in Cloud Storage for
|
|
Firebase, and fixed a bug in Invites.
|
|
- Changes
|
|
- Storage: Renamed "Firebase Storage" to "Cloud Storage for Firebase".
|
|
- Storage: Added an overload for `Storage::GetInstance()` that accepts a
|
|
`gs://...` URL, so you can use Cloud Storage with multiple buckets.
|
|
- Invites: (Android) Fixed an issue where invites with empty links would
|
|
fail to be received.
|
|
|
|
### 3.0.0
|
|
|
|
- Overview
|
|
- Renamed some methods, fixed some bugs, and added some features.
|
|
- Changes
|
|
- General: 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()`.
|
|
- Auth: Fixed a race condition accessing user data in callbacks.
|
|
- Auth: (Android) Added `is_valid()` to check if a credential returned by
|
|
`GetCredential()` 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).
|
|
- Messaging: Added a field to `firebase::messaging::Message` specifying
|
|
whether the message was received when the app was in the background.
|
|
- Messaging: (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.
|
|
- Messaging: (iOS) Fixed regression since 2.1.1 that broke messaging on
|
|
iOS 8 & 9 when an AppDelegate did not implement remote notification
|
|
methods.
|
|
- Invites: (iOS) Fixed regression since 2.1.1 that broke invites if the
|
|
AppDelegate did not implement the open URL method.
|
|
- Remote Config: Added support for initializing Remote Config defaults
|
|
from `firebase::Variant` values, including binary data.
|
|
|
|
### 2.1.3
|
|
|
|
- Overview
|
|
- Bug fixes for Auth and Messaging, and a fix for Future callbacks.
|
|
- Changes
|
|
- General: Fixed a potential deadlock when running callbacks registered
|
|
via `firebase::Future::OnCompletion()`.
|
|
- Auth: (Android) Fixed an error in `firebase::auth::User::PhotoUri()`.
|
|
- Messaging: (Android) Fixed an issue where a blank message would appear.
|
|
- Messaging: (iOS) Removed hard dependency on Xcode 8.
|
|
|
|
### 2.1.2
|
|
|
|
- Overview
|
|
- Bug fix for AdMob on Android.
|
|
- Changes
|
|
- AdMob: (Android) Fixed an issue in `firebase::admob::InterstitialAd`
|
|
that caused a crash after displaying multiple interstitial ads.
|
|
|
|
### 2.1.1
|
|
|
|
- Overview
|
|
- Bug fixes for Firebase Authentication, Messaging and Invites.
|
|
- Changes
|
|
- Auth: (Android) Fixed an issue that caused a future to never complete
|
|
when signing in while a user is already signed in.
|
|
- Messaging / Invites: (iOS) Fixed an issue with method swizzling that
|
|
caused some of the application's UIApplicationDelegate methods to not be
|
|
called.
|
|
- Messaging: (iOS) Fixed a bug which caused a crash when initializing the
|
|
library when building with Xcode 8 for iOS 10.
|
|
|
|
### 2.1.0
|
|
|
|
- Overview
|
|
- Support for Firebase Storage and minor bugfixes in other libraries.
|
|
- Changes
|
|
- Storage: Added the Firebase Storage C++ client library.
|
|
- Auth: Added a check for saved user credentials when Auth is initialized.
|
|
- Known Issues
|
|
- Storage: On Android, pausing and resuming storage operations will cause
|
|
the transfer to fail with the error code kErrorUnknown.
|
|
|
|
### 2.0.0
|
|
|
|
- Overview
|
|
- Support for AdMob Native Express Ads, Realtime Database and simplified
|
|
the Invites API.
|
|
- Changes
|
|
- AdMob: Added support for AdMob Native Express Ads.
|
|
- Auth: Added AuthStateListener class which provides notifications when a
|
|
user is logged in or logged out.
|
|
- Realtime Database: Added a client library.
|
|
- Invites: Breaking change which significantly simplifies the API.
|
|
- Known Issues
|
|
- AdMob: When calling Initialize, the optional admob_app_id argument is
|
|
ignored.
|
|
|
|
### 1.2.1
|
|
|
|
- Overview
|
|
- Bug fixes in Messaging.
|
|
- Changes
|
|
- Messaging: Fixed a bug that prevented Android apps from terminating
|
|
properly.
|
|
- Messaging: Added missing copy constructor implementation in iOS and stub
|
|
libraries.
|
|
|
|
### 1.2.0
|
|
|
|
- Overview
|
|
- New features in AdMob, Authentication, Messaging, and Remote Config, a
|
|
helper class for initialization, and bug fixes.
|
|
- Changes
|
|
- General: Added firebase::ModuleInitializer, a helper class to initialize
|
|
Firebase modules and handle any missing dependency on Google Play
|
|
services on Android.
|
|
- AdMob: Added Rewarded Video feature. For more information, see the
|
|
[Rewarded Video C++ guide](https://firebase.google.com/docs/admob/cpp/rewarded-video).
|
|
- AdMob: You can now pass your AdMob App ID to
|
|
firebase::admob::Initialize() to help reduce latency for the initial ad
|
|
request.
|
|
- AdMob: On both iOS and Android, you must call BannerView::Show() to
|
|
display the ad. Previously, this was only required on Android.
|
|
- AdMob: Fixed an issue where BannerView::Listener received an incorrect
|
|
bounding box.
|
|
- AdMob: BannerView now has a black background, rather than transparent.
|
|
- Authentication: Implemented User::SendEmailVerification() and
|
|
User::EmailVerified() methods on Android.
|
|
- Invites: Fixed a bug that occurred when initializing InvitesSender and
|
|
InvitesReceiver at the same time.
|
|
- Invites: Fixed a potential crash at app shutdown on iOS when
|
|
InvitesReceiver::Fetch() is pending.
|
|
- Messaging: Added firebase::messaging::Notification and associated
|
|
methods for retrieving the contents of a notification on Android and
|
|
iOS.
|
|
- Messaging: Added support for iOS 10 notifications.
|
|
- Messaging: Fixed a crash that occurred on Android if Messaging was
|
|
initialized before the native library was loaded.
|
|
- RemoteConfig: Added GetKeys() and GetKeysByPrefix() methods, which get a
|
|
list of the app's Remote Config parameter keys.
|
|
|
|
### 1.1.0
|
|
|
|
- Overview
|
|
- Minor bug fixes and new way of checking Google Play services
|
|
availability.
|
|
- Changes
|
|
- Reverted the firebase::App changes from version 1.0.1 relating to Google
|
|
Play services; this has been replaced with a new API.
|
|
- Each Firebase C++ library that requires Google Play services now checks
|
|
for its availability at initialization time. See "Requiring Google Play
|
|
services on Android".
|
|
- firebase::auth::GetAuth() now has an optional output parameter that
|
|
indicates whether initialization was successful, and will return
|
|
nullptr if not.
|
|
- firebase::messaging::Initialize() now returns a result that
|
|
indicates whether initialization was successful.
|
|
- 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.
|
|
- firebase::remote_config::Initialize() now returns a result that
|
|
indicates whether initialization was successful.
|
|
- firebase::admob::Initialize() now returns a result that indicates
|
|
whether initialization was successful.
|
|
- Added utility functions to check whether Google Play services is
|
|
available. See google_play_services::CheckAvailability() and
|
|
google_play_services::MakeAvailable() for more information.
|
|
- Known Issues
|
|
- Invites: If you call InvitesReceiver::Fetch() or
|
|
InvitesReceiver::ConvertInvitation() without first calling
|
|
firebase::invites::Initialize(), the operation will never complete. To
|
|
work around the issue, ensure that firebase::invites::Initialize() is
|
|
called once before creating any InvitesReceiver instances.
|
|
|
|
### 1.0.1
|
|
|
|
- Overview
|
|
- Minor bug fixes.
|
|
- Changes
|
|
- Modified firebase::App to check for the required version of Google Play
|
|
services on creation to prevent firebase::App creation 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. See "Requiring
|
|
Google Play services on Android". With the previous version (version
|
|
1.0.0) the developer needed to manually check for an up to date Google
|
|
Play services using GoogleApiClient.
|
|
- Fixed potential deadlock when using SetListener from a notification
|
|
callback in firebase::admob::InterstitialAd and
|
|
firebase::admob::BannerView on iOS.
|
|
- Fixed race condition on destruction of admob::BannerView on Android.
|
|
- Fixed Future handle leak. An internal memory leak would manifest for
|
|
objects or modules that use futures for the lifetime of the object or
|
|
module. For example, during the lifetime of BannerView each call to a
|
|
method which returns a Future could potentially allocate memory which
|
|
wouldn't be reclaimed until the BannerView is destroyed.
|
|
|
|
### 1.0.0
|
|
|
|
- Overview
|
|
- First public release. See our
|
|
[setup guide](https://firebase.google.com/docs/cpp/setup) to get
|
|
started.
|
|
- Known Issues
|
|
- Android armeabi libraries must be linked with gcc 4.8.
|