Firebase Unity SDK Release Notes

To see release notes for the Firebase console and for other Firebase platforms and related SDKs, see the Firebase Release Notes.

To install this SDK, see Add Firebase to your Unity Project.

Version 5.1.1 - June 27, 2018

  • Updated Android and iOS dependency versions only.

Version 5.1.0 - June 22, 2018

  • (Android): Fixed build issues due to the broken AndroidManifest merger in Unity 2018.x.

Cloud Functions

  • Added support for Cloud Functions on iOS, Android, and desktop.

Analytics

  • Added ResetAnalyticsData() to clear all analytics data for an app from the device.
  • Added GetAnalyticsInstanceIdAsync() which allows developers to retrieve the current app's analytics instance ID.

Authentication

  • Linking a credential with a provider that has already been linked now produces an error.
  • (iOS) Fixed crashes in FirebaseUser.LinkAndRetrieveDataWithCredential() and FirebaseUser.ReauthenticateAndRetrieveData().
  • (iOS) Fixed photo URL never returning a value on iOS.
  • (Android) Fixed setting the profile photo URL with FirebaseUser.UpdateUserProfile().

Realtime Database

  • Added support for ServerValues in SetPriority methods.
  • (iOS / Android) Now implemented as a wrapper around Firebase iOS and Android SDKs, to add offline support and increase reliability and performance.

Version 5.0.0 - June 5, 2018

  • Library names that previously did not mention Firebase now have a "FirebaseCpp" prefix. For example, Auth.dll is now FirebaseCppAuth.dll.
  • (Android) Improved error handling when device is out of space.
  • Removed deprecated method FirebaseApp.SetLogLevel.

Authentication

  • Removed deprecated properties PhotoUri and RefreshToken.

Dynamic Links

  • Added MatchStrength to ReceivedDynamicLink, that describes the strength of the match for the received link.

FCM

  • Added an optional initialization options struct. This can be used to suppress the prompt on iOS that requests permission to receive notifications at start up. Permission can be requested manually using the function firebase::messaging::RequestPermission().

Invites

  • Added MatchStrength to InvitesReceivedEventArgs, that describes the strength of the match for the received invite.

Storage

  • Deprecated StorageMetadata.DownloadUrl and StorageMetadata.DownloadUrls. Please use StorageReference.GetDownloadUrlAsync() instead.

Version 4.5.2 - April 24, 2018

  • Updated Parse .NET 4.6 type forwarding DLLs to fix build issues when using IL2CPP with the .NET 4.6 framework. The update works with IL2CPP in Unity 2017.2 and beyond. IL2CPP builds still fail in Unity 2017.1 as the IL2CPP distribution bundled with Unity 2017.1 does not correctly support type forwarding DLLs.
  • Root cert installation is now only performed in plugins that use the .NET network stack (currently only Realtime Database). This should resolve exceptions on initialization that reference /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation.
  • (Desktop) Fixed crash when using Authentication, Storage, Realtime Database and Remote Config on Linux.
  • (Android): Loading default AppOptions is now more robust on Android resulting in errors reported for missing fields rather than exiting the application with an error in the native library.

Authentication

  • Fixed regression in release 4.5.0 which led to an unhandled exception on auth token refresh.

Version 4.5.1 - April 16, 2018

  • (Android) Fixed a bug causing Unity to hang due to FirebaseApp initializing on the wrong thread, when building in -batchmode.
  • (Desktop) Fixed a bug when using iOS GoogleServicesInfo.plist config settings on desktop, which prevented "play in editor" mode from loading the correct project settings. (Only affected users who developed for iOS and not Android, who were using Desktop).

Authentication

  • (Desktop) Added support for accessing user metadata.

Analytics

  • Added SetMinimumSessionDuration() and SetSessionTimeoutDuration().

Dynamic Links

  • (Android) Fixed an issue with links getting lost when calling CheckAndFixDependenciesAsync().

Invites

  • (Android) Fixed an issue with invitations getting lost when calling CheckAndFixDependenciesAsync().

FCM

  • Added TokenRegistrationOnInitEnabled property to enable or disable auto-token generation.

Remote Config

  • Fixed a bug causing incorrect reporting of success or failure during a Fetch().

Storage

  • Fixed a bug in Storage that was unescaping '/' characters in the URL returned by StorageReference.GetDownloadUrlAsync(). This caused an "Invalid HTTP method/URL pair" error when attempting to download using the URL.

Version 4.5.0 - Mar 19, 2018

  • (Desktop) Stub implementations of Authentication and Remote Config have been replaced with functional desktop workflow implementations on Windows, OS X, and Linux.
  • (Editor) Added support for plugins within the Unity Editor context.
  • (Desktop) On Windows and Mac OS, only 64-bit builds are supported (x86_64), not 32-bit.

Authentication

Instance ID

  • Fixed issues when destroying/finalizing Firebase objects.

Remote Config

Storage

  • (iOS/Android) Now implemented as a wrapper around Firebase iOS and Android SDKs, to increase reliability and performance.
  • Added Md5Hash to StorageMetadata.

Version 4.4.3 - Feb 23, 2018

  • (Editor) Fixed a crash in the editor when using .NET 4.6 with certain versions of Unity 2017.
  • (Android) Fixed an issue when Google Play Services was out of date and would hang after returning from the update workflow.

Dynamic Links

  • (iOS) Now fetches the invite ID when using universal links.
  • (iOS) Fixed crash on failure of dynamic link completion.
  • (iOS) Fixed an issue where some errors weren't correctly reported.

Invites

  • (Editor) Fixed SendInvite never completing.

Remote Config

  • (iOS) Fixed an issue where some errors weren't correctly reported.

Storage

  • Fixed Metadata::content_language returning the wrong data.
  • (iOS) Reference paths formats are now consistent with other platforms.
  • (iOS) Fixed an issue where trying to upload to a non-existent path would not complete the Task.
  • (iOS) Fixed a crash when a download fails.

Version 4.4.2 - Feb 5, 2018

  • (iOS) Updated Firebase iOS Cocoapod dependency version.

Version 4.4.1 - Jan 26, 2018

  • (Android) Fixed a bug with handling transitive dependencies in the Android Resolver, where there was a common dependency name from different sources.
  • (Android) Fixed Android Resolver reporting non-existent conflicts.
  • Fixed get_realtimeSinceStartup Assert in development builds.
  • Fixed issues when using types added in .NET 4.x such as Tuple. This requires switching to the appropriate Unity.Compat.dll when using .NET 4.x (see Known Issues).

Instance ID

  • (iOS) GetTokenAsync no longer fails without an APNS certificate, and no longer forces registering for notifications.

Storage

  • Added support for a progress listener and cancellation token to GetBytesAsync.
  • Fixed an issue where the auth token was not refreshed when the application is started.

Realtime Database

  • Fixed an issue where the auth token was not refreshed when the application is started.

Version 4.4.0 - Jan 3, 2018

Instance ID

  • Added Instance ID library.

Authentication

  • Fixed user metadata property names.

Version 4.3.0 - Nov 30, 2017

  • Fixed some invalid calls to Unity APIs from threads.
  • Fixed Firebase settings window to work with Unity 4.x.
  • Fixed GoogleServices-Info.plist not being read in batch mode.

Authentication

  • Fixed a bug due to a race condition fetching the authentication token which could cause Database and Storage operations to hang.
  • Added support for accessing user metadata.

Remote Config

  • (Android) Fixed a bug where remote config values retrieved were misclassified as coming from a default config vs an active config.

Realtime Database

  • Fixed hang when Time.timeScale is 0 in Unity 2017.

Storage

  • Fixed hang when Time.timeScale is 0 in Unity 2017.

Version 4.2.1 - Oct 20, 2017

  • (Android) Fixed Android resolution when a project path contains apostrophes.
  • (iOS) Increased speed of iOS resolver dependency loading.
  • (Android) Removed legacy resolution method from Android Resolver. It is now only possible to resolve dependencies using Gradle (default), or optionally "Prebuild With Gradle".
  • (Android) Fixed Android Resolution issues with OpenJDK by updating the Gradle wrapper to 4.2.1.
  • (Android) Android resolution now also uses gradle.properties to pass parameters to Gradle in an attempt to workaround problems with command line argument parsing on Windows 10.
  • Fixed some invalid calls to Unity APIs from threads, when using .NET 4.x which is added in Unity 2017.

Storage

  • Fixed file download in Unity 2017.2.

Version 4.2.0 - Oct 2, 2017

  • (iOS) Fixed incorrect processing of framework modulemap files which resulted in the wrong link flags being generated when Cocoapod project integration is enabled.
  • (Android) Added support for Google Play services dependency resolution when including multiple plugins (e.g AdMob, Google Play Games services) that require different versions of Google Play services.
  • (Android) Fixed Android dependency resolution when local project paths contain spaces.
  • (Android) Fixed race condition in Android Resolver which could cause a hang when running auto-resolution.
  • (Android) Forced Android Gradle resolution process to not use the Gradle daemon to improve reliability of the process.
  • (Android) Added a check for at least JDK 8 when running Android dependency resolution.
  • Fixed MonoPInvokeCallbackAttribute incorrectly being added to the root namespace causing incompatibility with plugins like slua.

Analytics

  • Fixed bug which prevented the user ID and user properties being cleared.

Authentication

  • (iOS) Phone authentication no longer requires push notifications. When push notifications aren't available, reCAPTCHA verification is used instead.
  • Added more specific error codes for failed operations.

Realtime Database

  • Fixed issue where user authentication tokens are ignored if the application uses the database API before initializing authentication.

FCM

  • Messages sent to users can now contain a link URL.
  • (Android) Fixed a bug which prevented the message ID field.

Version 4.1.0 - Aug 23, 2017

  • Updated to iOS 4.1.0 SDK, Android 11.2.0 SDK and C++ 4.1.0 SDK.
  • (iOS) Fixed iOS build with Cocoapod Project integration enabled. This affected all iOS builds when using Unity 5.5 or below or when using Unity Cloud Build.
  • (iOS) Fixed issue which prevented the use of Unity Cloud Build with Unity 5.6 and above. Unity Cloud Build does not open generated Xcode workspaces so we force Cocoapod Project integration in the Unity Cloud Build environment.
  • (iOS) Fixed spurious errors on initialization of FirebaseApp.

Authentication

  • (Android) An exception is now thrown if you call GetCredential without creating an Auth instance.

FCM

  • (Android) Fixed a bug resulting in FirebaseMessage objects not having their MessageType field populated.
  • (iOS) Fixed a race condition if a message is received before Firebase Cloud Messaging is initialized.
  • (iOS) Fixed a bug detecting whether the notification was opened if the app was running in the background.

Remote Config

  • When listing keys, the list now includes keys with defaults set, even if they were not present in the fetched config.

Version 4.0.3 - Aug 1, 2017

  • Added support for .NET 4.x in the System.Task implementation used by the SDK. The VersionHandler editor plugin is now used to switch Task implementations based upon the selected .NET version.
  • Fixed root cert installation failure if Firebase is initialized after other network operations are performed by an application.
  • Improved native shared library name mangling when targeting Linux.
  • (iOS) Fixed an issue which resulted in custom options not being applied to FirebaseApp instances.
  • (iOS) Fixed a bug which caused method implementation look ups to fail when other iOS SDKs rename the selectors of swizzled methods. This could result in a hang on startup when using some iOS SDKs.

Dynamic Links

  • (Android) Fixed task completion if short link creation fails.

Realtime Database

  • Fixed an issue where a list larger than approximately 1kb will fail to synchronize changes correctly.
  • Fixed a bug that caused database connections to fail when using the .NET 4.x framework in Unity 2017 on OSX.

FCM

  • (iOS) Fixed message handling when messages they are received via the direct channel to the FCM backend (i.e not via APNS).

Version 4.0.2 - Jul 7, 2017

  • (Android) Fixed native libraries not being included in built APKs when using the internal build system in Unity 2017.

Analytics

  • (Android) Fixed an issue which caused Analytics to be included in builds without the Analytics plugin.
  • Fixed SetCurrentScreen to work from any thread.

Authentication

  • (iOS) Fixed an issue which incorrectly invalidated the current user if credential linking fails.

Dynamic Links

  • Fixed an issue which caused an app to sometimes crash or not receive a Dynamic Link if it's opened when the app is installed and not running.

FCM

  • (Android) Fixed the AndroidManifest.xml to work with version 25 and above of the Android SDK tools and support library.
  • (iOS) Fixed a crash when no notification event is registered.
  • Fixed token notification event occasionally being raised twice with the same token.

Version 4.0.1 - Jun 16, 2017

FCM

  • (Android): Fixed crash when updating Google Play services in projects that include the FCM functionality.
  • (iOS): Fixed an issue where library would crash on start up if there was no registration token.

Dynamic Links and Invites

  • (iOS) Fixed an issue which caused an app to not receive a Dynamic Link if it's opened when the app is installed and not running.

Version 4.0.0 - Jun 9, 2017

  • (Android) Fixed crash in some circumstances after resolving dependencies by updating Google Play services.
  • (iOS) Added support for CocoaPod builds that use Xcode workspaces in Unity 5.6 and above.
  • (iOS) Fixed CocoaPod version pinning which was broken in 3.0.3 causing the SDK to pull in the most recent Firebase iOS SDK rather than the correct version for the current Unity SDK release.

Authentication

  • Added support for phone number authentication.
  • Added the ability to retrieve user metadata.
  • Moved token notification to a separate token changed event.

Dynamic Links

  • Added a standalone plugin separate from Invites.

Invites

  • (iOS) Fixed an issue in the analytics SDK's method swizzling which resulted in dynamic links / invites not being sent to the application.

FCM

  • (Android) Fixed a regression introduced in 3.0.3 which caused a crash when opening up a notification when the app is running in the background.
  • (iOS) Fixed interoperation with other users of local notifications.

Version 3.0.3 - May 11, 2017

Authentication

  • Fixed a crash caused by a stale memory reference when a firebase::auth::Auth object is destroyed and then recreated for the same App object.
  • Fixed a potential memory corruption when AuthStateListener is destroyed.
  • (Editor) Fixed an occasional crash in the Unity editor when using authentication sign-in methods.

Version 3.0.2 - May 9, 2017

  • (Android) Fixed an unhandled exception that occurs if FirebaseApp creation fails due to an out-of-date Google Play services version.
  • (Android) Fixed a crash in the Google Play services updater that occurred when clicking outside of the dialog on Android 4.x devices.
  • (Android Editor) Fixed referenced Android dependencies in the Maven plugin where the Project Object Model file (pom.xml) references a specific version using a range expression.
  • (Android Editor) Fixed the resolution of Android dependencies when the bundle ID is modified.
  • (iOS Editor) Improved compatibility with Cocoapods support in Unity 5.6, required to use the GoogleVR iOS SDK.

Authentication

  • Fixed user being invalidated when linking credential fails.
  • Fixed an occasional crash when events are fired. This could manifest in a crash when signing in.
  • Deprecated FirebaseUser.RefreshToken.

Realtime Database

  • Fixed an issue which caused the application to manually refresh the auth token.

FCM

  • (Android) Resolved an issue which caused an app to receive an empty message when a notification is received while the app is in the background and user then taps on 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. This caused the Facebook SDK login flow to fail.

Version 3.0.1 - March 15, 2017

  • (Android) Fixed Google Play Services checker on Android. Previously when Google Play Services was out of date, FirebaseApp.CheckDependencies() incorrectly returned DependencyStatus.Available.
  • (Android) Added check for auto-resolution being enabled in the Android Resolver editor plugin. If auto-resolution is disabled by the user or by another plugin (e.g Google Play Games), the user is warned about the configuration problem and given the opportunity to fix it.
  • (Android) Fixed single architecture builds when using Gradle.
  • (Android) Resolved an issue which caused the READ_PHONE_STATE permission to be requested.

Version 3.0.0 - February 27, 2017

  • Added link.xml files to allow byte stripping to be enabled.
  • Fixed issues with Android builds when targeting a single ABI.
  • Added process of cleaning stale / moved files when upgrading to a newer version of the editor plugin.
  • Fixed minor issue in the editor plugin with the Firebase window not being repainted as Firebase configuration files are added to or removed from a project.
  • Bundle ID selection dialog for iOS and Android is now displayed when the project bundle ID doesn't match the Firebase configuration.
  • (iOS) Added automated CocoaPod tool installation and improved Pod tool detection when using RVM. This enables iOS projects to build with Unity Cloud Build.
  • (iOS) Added support for pods that reference static libraries.
  • (Android) Added experimental support for building with Proguard stripping enabled.
  • (Android) Fixed Android package (AAR) synchronization when the project bundle ID is modified.
  • (Android) Fixed clean up of stale AAR dependencies when users change Android SDK versions.
  • (Android) Jar Resolver now remembers—for the editor session—which AARs to keep when new AARs are available compared to what is included in a project.
  • (Android) Added support for projects that use Google Play Services at different versions.
  • Added fake—but valid—JWT in the Authentication stub used when building for the desktop.

Authentication

  • Added SetCurrentScreen() method.
  • Fixed race condition when accessing user properties.

Realtime Database

  • Resolved issue where large queries resulted in empty results.
  • Fixed an issue which prevented saving boolean values.

Storage

  • Fixed a bug which prevented download URLs from containing slashes.
  • (iOS) Fixed a bug on iOS which caused networking to fail when the full .NET 2.0 compatibility level is used.

FCM

  • (iOS) Fixed issue with initialization on iOS that caused problems with other SDKs.

Invites

  • (iOS) Fixed issue with initialization on iOS that caused problems with other SDKs.

Version 1.1.2 - February 6, 2017

  • Fixed a potential deadlock when running callbacks registered via Task.ContinueWith().

Authentication

  • (Android) Fixed an error in Firebase.Auth.FirebaseUser.PhotoUrl.

FCM

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

Version 1.1.1 - January 18, 2017

  • Fixed an issue in the editor plugin that caused an exception to be thrown when the project bundle ID didn't match a bundle ID in the Android configuration file (google-services.json).
  • Fixed a bug in the editor plugin that caused a stack overflow when multiple iOS configuration files (GoogleServices-Info.plist) are present in a project.

Authentication

  • (Android) Fixed an issue that caused a Task to never complete when signing in while a user is already signed in.
  • Renamed the Auth.UserProfile.ProtoUri property to Auth.UserProfile.ProtoUrl to be consistent with the other URL properties across the SDK.

FCM

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

Invites

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

Realtime Database

  • Fixed an issue that prevented saving floating point values.

Storage

  • The Storage plugin was using a Unity API that is only present in Unity 5.4. We have modified the component so that it is now backwards compatible with previous versions of Unity.

Version 1.1.0 - December 9th, 2016

  • The editor plugin now reads the Java SDK location from the Unity editor preferences.
  • The editor plugin now scans all google-services.json and GoogleService-Info.plist files selects the config file matching the project's bundle ID.
  • Error messages in the editor plugin now report more common configuration problems.
  • (Android) Improved the performance of AAR / JAR resolution when the Android config is selected and auto-resolution is enabled.
  • Fixed a bug that caused event routing to fail when a Unity scene transition occurs.
  • Fixed a build configuration problem that prevented builds in Visual Studio.
  • (Android) Proguard is not integrated into Android builds, but you can manually integrate the Proguard files included with the Unity SDK into Android app builds. These Proguard files are found in AAR files matching the following pattern in each Unity package: Firebase/m2repository/com/google/firebase/firebase-*-unity/*firebase-*.srcaar
  • (Android) Incompatible AARs are not resolved correctly when building for Android. This can require manual intervention when using multiple plugins. A workaround is documented on the AdMob Unity plugin issue tracker.

Storage

Analytics

  • Fixed crash when logging arrays of parameters.

Authentication

  • Modified stub implementation so that all operations now succeed rather than raise exceptions.

Realtime Database

  • Fixed an issue that caused null events to not be reported.
  • Fixed an issue that caused unsubscription from complex queries to fail.
  • Fixed an issue that caused service account authentication to fail in the editor.
  • Added a link.xml rule to prevent Firebase.Database.Unity being stripped from iOS builds.

FCM

  • Fixed an issue that prevented subscription to topics.
  • (iOS) Fixed an issue that caused random hangs during initialization on iOS.
  • (Android) Modified the AndroidManifest.xml so that the app icon is included on Android.
  • (Android) Fixed an issue that caused an exception when receiving messages with empty payloads on Android.

Dynamic Links and Invites

  • Modified stub implementation so that all operations now succeed rather than raise exceptions.
  • Fixed an issue that caused a crash when opening a link.
  • (iOS) Fixed an issue that caused random hangs during initialization on iOS.

Version 1.0.1 - November 18th, 2016

  • Fixed Realtime Database restricted access from the Unity Editor on Windows.
  • (iOS) Fixed load and build errors when iOS support is not installed.
  • (iOS) Fixed an issue that prevented the creation of multiple FirebaseApp instances and customization of the default instance.
  • (iOS) Fixed an issue with pod tool discovery when the Ruby Gem binary directory is modified from the default location.
  • (Android) Removed all dependencies on Python resource generation on Windows.
  • (Android) Fixed problems when building with the IL2CPP scripting backend.

Version 1.0.0 - November 7th, 2016

This initial release of the Firebase Unity SDK includes support for Analytics, Authentication, Realtime Database, Invites, Dynamic Links and Remote Config. To get started, see Adding Firebase to your Unity Project.

  • Proguard is not integrated into Android builds, but you can manually integrate the Proguard files included with the Unity SDK into Android app builds. These Proguard files are found in AAR files matching the following pattern in each Unity package: Firebase/m2repository/com/google/firebase/firebase-*-unity/*firebase-*.srcaar

Send feedback about...

Need help? Visit our support page.