Firebase Unity SDK Release Notes

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

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

Version 12.5.0 - December 12, 2024

  • Update to Firebase C++ SDK version 12.5.0.
  • (iOS) Update to Firebase Cocoapods version 11.6.0.
  • (Android) Update to Firebase Android BoM version 33.7.0.

Version 12.4.1 - November 14, 2024

  • Remove unresolved SWIG string symbols. (#1139).

Version 12.4.0 - October 31, 2024

  • Update to Firebase C++ SDK version 12.4.0.
  • (iOS) Update to Firebase Cocoapods version 11.4.2.
  • (Android) Update to Firebase Android BoM version 33.5.1.
  • (Android) Reduced minSdkVersion back to 23.

Analytics

  • Add support for Parameters of Lists of Dictionaries, needed by some events such as ViewCart. (#1056).
  • Renamed ParameterGroupId to ParameterGroupID, to be consistent with other similarly named variables. ParameterGroupId is considered deprecated, and will be removed in the future.
  • Deprecated the Dispose functions, as they are no longer necessary for cleaning up memory.

Authentication

  • (Android) Setting PhotoUrl to empty string or null with UpdateUserProfile clears the field, making it consistent with the other platforms. (#1112).

Version 12.3.0 - September 30, 2024

  • Update to Firebase C++ SDK version 12.3.0.
  • (Android) Update to Firebase Android BoM version 33.3.0.
  • (iOS) Update to Firebase Cocoapods version 11.2.0.
  • Update to EDM4U version 1.2.183.

FCM

  • (Android) Fixed issue with TokenReceived not being called when the application has a cached token from a previous run. (#1088).

Remote Config

  • Fixed ConfigInfo fields to default to 0 when not throttled or having previous fetch data. (#1058).

Version 12.2.1 - September 04, 2024

FCM

  • Fixed a crash when opening a push notification. (#1091).

Version 12.2.0 - August 07, 2024

  • Update to Firebase C++ SDK version 12.2.0.
  • (Android) Update to Firebase Android BoM version 33.1.2.
  • (iOS) Update to Firebase Cocoapods version 11.0.0.
  • Update to EDM4U version 1.2.182.

FCM

  • Deprecated the Dispose functions, as they are no longer necessary for cleaning up memory.

Version 12.1.0 - June 27, 2024

  • Update to Firebase C++ SDK version 12.1.0.
  • (Android) Update to Firebase Android BoM version 33.1.1.
  • (iOS) Update to Firebase Cocoapods version 10.28.1.
  • Update to EDM4U version 1.2.181.

Analytics

  • (iOS) Add support for InitiateOnDeviceConversionMeasurementWithHashedEmailAddress and InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber.

FCM

  • (Android) Fixed a potential race condition on receiving messages after cleanup. (#1030).
  • (iOS) Fixed an issue with notifications being lost if they were received before Firebase Messaging was initialized. (#377).

Version 12.0.0 - May 09, 2024

  • Update to Firebase C++ SDK version 12.0.0.
  • (Android) Update to Firebase Android BoM version 33.0.0.
  • (Android) Updated minSdkVersion to 23, and targetSdkVersion and compileSdkVersion to 34.
  • (iOS) Update to Firebase Cocoapods version 10.25.0.
  • (iOS) Minimum iOS deployment target is now 13.0.
  • Minimum supported editor version is now Unity 2020.

Authentication

  • Remove deprecated calls involving SignInResult, most of which were appended with _DEPRECATED.

Remote Config

  • Remove deprecated ConfigSettings.MinimumFetchInternalInMilliseconds, use ConfigSettings.MinimumFetchIntervalInMilliseconds instead.

Version 11.9.0 - April 18, 2024

  • Update to Firebase C++ SDK version 11.10.0.
  • (Android) Update to Firebase Android BoM version 32.8.1.
  • (iOS) Update to Firebase Cocoapods version 10.24.0.

App Check

  • Fixed potential crash when fetching a token. (#877).

Cloud Storage

  • (Desktop) Removed 5-minute timeout for uploads and downloads. (#968).

Version 11.8.1 - March 29, 2024

Cloud Firestore

  • (iOS) Fix undefined absl symbols error. (#974)

Version 11.8.0 - March 13, 2024

  • Update to Firebase C++ SDK version 11.9.0.
  • (Android) Update to Firebase Android BoM version 32.7.4.
  • (iOS) Update to Firebase Cocoapods version 10.22.0.
  • (Android) Improve how property tag logic handles Unity 2022+.

Authentication

  • Add FirebaseUser.SendEmailVerificationBeforeUpdatingEmailAsync, a new method to verify and change the User's email.
  • Deprecate the older method of updating emails, UpdateEmail.

Version 11.7.0 - February 13, 2024

  • Update to Firebase C++ SDK version 11.8.0.
  • (Android) Update to Firebase Android BoM version 32.7.1.
  • (iOS) Update to Firebase Cocoapods version 10.20.0.

Analytics

  • Updated the consent management API to include new consent signals.

Authentication

Version 11.6.0 - October 19, 2023

  • Update to Firebase C++ SDK version 11.6.0.

App Check

  • Fixed a crash when there are errors creating a provider. (#877)

Version 11.5.0 - September 21, 2023

  • Update to Firebase C++ SDK version 11.5.0.
  • (Android) Update to Firebase Android BoM version 32.3.1.
  • (iOS) Update to Firebase Cocoapods version 10.15.0.
  • (Android) Made dynamic code files read only to comply with new Android 14 security requirements. This fixes a crash at API level 34+.

Analytics

Version 11.4.0 - August 17, 2023

  • Update to Firebase C++ SDK version 11.4.0.
  • (Android) Update to Firebase Android BoM version 32.2.2.
  • (iOS) Update to Firebase Cocoapods version 10.13.0.
  • (iOS) 32-bit iOS builds (i386 and armv7) are no longer supported.

Authentication

  • Fixed a potential crash with holding onto FirebaseUser objects after the AuthResult has been disposed.

Version 11.3.0 - July 19, 2023

  • Update to Firebase C++ SDK version 11.3.0.
  • (Android) Update to Firebase Android BoM version 32.2.0.
  • (iOS) Update to Firebase Cocoapods version 10.12.0.
  • (Desktop) Fixed an error loading google-services.json and google-services-desktop.json from paths with international characters on Windows.

Authentication

  • (Android) Fixed an issue where VerifyPhoneNumber's internal builder failed to create PhoneAuthOptions with certain compiler settings.
  • (iOS) Fixed an issue where functions that return AuthResult were not including updated credentials when encountering errors.

Cloud Firestore

  • (Android) Fix the intermittent global references exhaustion crash when working with documents with a large number of keys and/or large map and/or array fields. (#569).

Remote Config

  • (Desktop) Additional fix for handling of non-English time zone names on Windows.

Version 11.2.0 - June 23, 2023

  • Update to Firebase C++ SDK version 11.2.0.
  • (Android) Update Firebase Android BoM dependencies to v32.1.1.
  • (iOS) Update Firebase Cocoapods dependencies to v10.11.0.

Remote Config

  • (Desktop) Fixed numeric conversion when the system language's number format uses commas as decimal points.
  • (Desktop) Fixed handling of time zones on Windows when the time zone name in the current system language contains an accented character or apostrophe.

Version 11.1.0 - June 01, 2023

  • Update to Firebase C++ SDK version 11.1.0.
  • (Android) Update Firebase Android BoM dependencies to v32.1.0.
  • (iOS) Update Firebase Cocoapods dependencies to v10.10.0.
  • (Android) Fix for deadlock within JniResultCallback, commonly seen within Messaging, but affecting other products as well.
  • Fix an issue where AppCheck bundles were unintentionally included in App in the tgz.

Authentication

  • Fix a crash that could occur when referencing CurrentUser.
  • Remove internal methods.

Realtime Database

  • (Desktop) Fixed a crash on Windows when the user's home directory contains non-ANSI characters (Unicode above U+00FF).

Cloud Firestore

  • (Desktop) Fixed a crash on Windows when the user's home directory contains non-ANSI characters (Unicode above U+00FF).

Cloud Storage

  • (Desktop) Fixed a crash on Windows when uploading files from a path containing non-ANSI characters (Unicode above U+00FF).

Version 11.0.0 - May 9, 2023

App Check

  • Adds support for Firebase App Check on Android, iOS, tvOS, and desktop platforms. To learn more, see https://firebase.google.com/docs/app-check

Authentication

  • Deprecated a number of methods, appending _DEPRECATED to some of their names. This is a breaking change; you must either modify your code to refer to the _DEPRECATED methods, or switch to the new methods, which have new return types AuthResult (rather than SignInResult). The deprecated methods will be removed in the next major release of the Firebase Unity SDK. (Note: do not mix and match using the old and new methods or undefined behavior may result.)

Cloud Firestore

  • Added Query.Count(), which fetches the number of documents in the result set without actually downloading the documents (#659).

FCM

  • Remove deprecated calls Send, Subscribe, and Unsubscribe.

Remote Config

  • (Android/iOS) Added support for real-time config updates. Use the new OnConfigUpdateListener API to get real-time updates. Existing FetchAsync and ActivateAsync APIs aren't affected by this change. To learn more, see Get started with Firebase Remote Config.

Version 10.7.0 - March 30, 2023

  • Update to Firebase C++ SDK version 10.7.0.
  • (Android) Update Firebase Android BoM dependencies to v31.3.0.
  • (iOS) Update Firebase Cocoapods dependencies to v10.7.0.

FCM

  • (Android) Generate the custom MessagingUnityPlayerActivity as a Java file instead of precompiling it. This is to better support changes with the UnityPlayerActivity, and GameActivity options, in the Unity 2023 editor.

Version 10.6.0 - March 9, 2023

  • (Android) Update to Firebase Android BoM version 31.2.3.
  • (iOS) Update to Firebase Cocoapods version 10.6.0.

Version 10.5.0 - February 16, 2023

  • (Android) Update to Firebase Android BoM version 31.2.1.
  • (iOS) Update to Firebase Cocoapods version 10.5.0.

Version 10.4.0 - January 26, 2023

  • Introduces new Unity SDK support for tvOS. Supports Analytics, Authentication, Crashlytics, Database, Firestore, Cloud Functions, Installations, Messaging, Remote Config and Storage.
  • (Android) Update to Firebase Android BoM version 31.2.0.
  • (iOS) Update to Firebase Cocoapods version 10.4.0.

Analytics

  • Added SetConsent() and GetSessionIdAsync() APIs.

Crashlytics

  • Added ReportUncaughtExceptionsAsFatal property and LogExceptionAsFatal API.

Version 10.3.0 - December 14, 2022

  • (Android) Update to Firebase Android BoM version 31.1.1.
  • (iOS) Update to Firebase Cocoapods version 10.3.0.

Remote Config

  • Added ConfigSettings.MinimumFetchIntervalInMilliseconds, which should be used instead of MinimumFetchInternalInMilliseconds. The old one is considered deprecated, and will be removed with the next major release.

Version 10.2.0 - November 30, 2022

  • (Android) Update to Firebase Android BoM version 31.1.0.
  • (iOS) Update to Firebase Cocoapods version 10.2.0.

Version 10.1.1 - November 17, 2022

  • (Android) Update to Firebase Android BoM version 31.0.3.

Crashlytics

  • (Android) Fixed an issue preventing native crashes from being reported for Android API 29+.

Version 10.1.0 - November 7, 2022

  • Update to Firebase C++ SDK version 10.1.0.
  • (Android) Update to Firebase Android BoM version 31.0.2.
  • (iOS) Update to Firebase Cocoapods version 10.1.0.

Crashlytics

  • (Android) Fixed an issue with symbols being stripped when using the tgz package.

Cloud Firestore

  • (Android) Reduce the number of JNI global references consumed when creating or updating documents (#1111).

Version 10.0.1 - October 20, 2022

Crashlytics

  • (Android) Fixed a critical issue that was causing background crashes in specific cases.

Version 10.0.0 - October 17, 2022

  • Updated Firebase C++ SDK dependencies to v10.0.0.
  • (Android) Update Firebase Android BoM dependencies to v31.0.0.

  • (iOS) Update Firebase Cocoapods dependencies to v10.0.0.

  • Minimum supported editor version is now Unity 2019.

  • Removed dependency on Parse Tasks.

Authentication

Remote Config

  • Improve performance when setting default parameters with long strings.

Version 9.6.0 - September 27, 2022

  • Updated Firebase C++ SDK dependencies to v9.6.0.
  • (Android) Update Firebase Android BoM dependencies to v30.5.0.
  • (iOS) Update Firebase Cocoapods dependencies to v9.6.0.

Version 9.5.0 - September 12, 2022

  • Updated Firebase C++ SDK dependencies to v9.5.0.

Crashlytics

  • Fix #218 that Firebase editor tool not loading when iOS build support is not installed.

Version 9.4.0 - August 10, 2022

  • Updated Firebase C++ SDK dependencies to v9.4.0.

Version 9.3.0 - July 26, 2022

  • (Android, Linux) Fixed a concurrency bug where waiting for an event with a timeout could occasionally return prematurely, as if the timeout had occurred (#1021).

Version 9.2.0 - July 14, 2022

Crashlytics

  • Fix requiring user code to reference Crashlytics when using il2cpp.

Realtime Database

  • (Desktop) If the app data directory doesn't exist, create it. This fixes an issue with disk persistence on Linux.

Cloud Firestore

  • Added TransactionOptions to control how many times a transaction will retry commits before failing (#318).

FCM

  • (Android) Make sure all the resources are closed in RegistrationIntentService. (#973).

Version 9.1.0 - June 10, 2022

  • Added a missing namespace to the Google.MiniJson.dll.
  • (iOS): Fix an issue with bitcode not being enabled correctly.

Analytics

Cloud Functions

  • Add a new method GetHttpsCallableFromURL, to create callables with URLs other than cloudfunctions.net.

Version 9.0.0 - May 19, 2022

  • (Editor) Minimum supported editor version is now Unity 2018.
  • (Editor, macOS): Add support for Apple silicon chips.
  • (iOS): Firebase Unity on iOS is now built using Xcode 13.3.1.
  • (iOS): Fixed crash when running on iPhoneOS 12 and older.

Analytics

  • Removed deprecated event names and parameters.

Crashlytics

  • (Android): Fixed a bug with missing symbols when enabling minification via ProGuard.

Realtime Database

  • (Desktop): Fixed a bug handling server timestamps on 32-bit CPUs.

FCM

  • (Android): Fixed a bug with duplicate symbols when also using Functions.

Cloud Storage

  • (Desktop): Set Content-Type HTTP header when uploading with custom metadata.

Version 8.10.1 - May 4, 2022

  • (android) Fix an issue when building with mainTemplate.gradle (#266).

Version 8.10.0 - May 2, 2022

  • (Editor, macOS) Fix an issue when finding "python" executable.
  • Firebase Unity SDK now built using Unity 2019.

Version 8.9.0 - April 6, 2022

  • (Editor, macOS) Support non-default "python" executable names, common in newer macOS versions.
  • (iOS) Fixed additional issues on iOS 15 caused by early initialization of Firebase iOS SDK.

Remote Config

  • Fixed default FetchAsync() timeout being too high.

Cloud Storage

  • (Desktop) Added retry logic to PutFileAsync, GetFileAsync, and other operations.

Version 8.8.0 - January 31, 2022

  • (iOS) Another possible fix for an intermittent crash on iOS 15 caused by constructing C++ objects during Objective-C's +load method.

Crashlytics

  • (Android) Updated internal Crashpad version to commit 281ba7. With this change, disabling tagged pointers is no longer required, so the following can be removed from your manifest's application tag: android:allowNativeHeapPointerTagging=false.
  • (Android) Improved runtime efficiency of the SetCustomKey functions, significantly reducing the number objects created and disk writes when keys are updated frequently.

Remote Config

  • Fixed an issue where the TimeSpan field of FetchDataAsync was being used incorrectly.

Cloud Storage

  • Added a method to access the url of a storage instance.

Version 8.7.0 - December 15, 2021

  • (iOS) Fixed an intermittent crash on iOS 15 caused by constructing C++ objects during Objective-C's +load method. (#706) (#783)

Crashlytics

  • (Android) Fixed a bug that prevented some Crashlytics session files from being removed after the session ended. All session-specific files are now properly cleaned up. (#737)

Version 8.6.2 - November 19, 2021

FCM

  • (Android) Clean up callbacks on termination, to possibly fix ANR issues in CheckAndFixDependenciesAsync (#1160).

Version 8.6.1 - November 9, 2021

Crashlytics

  • (Android) Updated the pinned dependency to fix a missing method error (#1177).

Version 8.6.0 - November 8, 2021

  • (Android) Minimum SDK version is now 19.
  • Variant double type now supports 64-bit while saving to JSON. (#1133).
  • Official support for Unity 2017.x will be dropped at the next major release.

Cloud Firestore

  • Released to general availability for Android and iOS (desktop support remains in beta).
  • Fixed intermittent crashes and empty results when retrieving the contents of a document. (#1171).
  • (iOS): Fixed intermittent "start after" query filters failing to have any effects on the queries.
  • (iOS): Fixed intermittent cases where specifying ServerTimestampBehavior.Previous would return empty values instead of the previous values.

Crashlytics

  • (Android) Improved crash reporting for Unity Android apps using the IL2CPP scripting backend. To display symbolicated IL2CPP stack traces in the Crashlytics console, Android customers will need to upload symbol files for their builds. See the Getting Started with Crashlytics Unity Guide for more details.

FCM

  • (Android) Fixed crash resulting in ANR on termination (#1151).

Version 8.5.0 - October 27, 2021

  • (iOS) iOS SDKs are now built using Xcode 13.0.0.

Cloud Firestore

  • Fixed an issue where the Equals() and GetHashCode() methods of DocumentSnapshot would sometimes be inconsistent (#8647).

Version 8.4.0 - October 13, 2021

  • Added support for Android x86_64 (Chrome OS).

Cloud Firestore

  • Improved the efficiency of progress callbacks in LoadBundleAsync().
  • Fixed crashes in Unity Editor on Linux caused by C++ exceptions failing to be converted to C# exceptions.
  • Fixed intermittent hangs on Android when exceptions are thrown by callbacks.
  • Fixed a crash on Android when DocumentReference.Set() was invoked with an invalid documentData value (e.g. an int).
  • Fixed race conditions in the instance caching, terminate, and disposal logic of FirebaseFirestore.

Version 8.3.0 - September 21, 2021

Cloud Firestore

  • Simplified the API for modifying the settings of a FirebaseFirestore instance. This is a backwards-incompatible change and requires updates to code that sets FirebaseFirestore.Settings.
  • Changed an argument to Query.WhereNotIn() from List to IEnumerable, to be consistent with Query.WhereIn().

FCM

  • (Android) Fixes an issue with receiving tokens when initializing the app.

Version 8.2.0 - September 7, 2021

Crashlytics

  • Upload UnityFramework symbols in addition to the main app dSYM file to improve symbolication (#673).

Cloud Firestore

  • Removed Equals and GetHashCode methods from Query, QuerySnapshot, and DocumentSnapshot classes. These methods were unimplemented, and we plan to add proper support for them in a future release.

FCM

  • Fixed a duplicate class error when building an application which also uses Cloud Functions for Firebase.

Version 8.1.0 - July 19, 2021

Realtime Database

  • Fixed a crash around using DataSnapshots within Coroutines (#635).

Cloud Firestore

  • Implemented IDisposable for ListenerRegistration (#746).
  • Added null and empty string argument checks to all public methods, which now throw exceptions instead of crashing (#1053).
  • Fixed Android crash due to missing QueryEventListener class (#1080).
  • Added support for Firestore Bundles via FirebaseFirestore.LoadBundleAsync() and FirebaseFirestore.GetNamedQueryAsync(). Bundles contain pre-packaged data produced with the Firestore Server SDKs and can be used to populate Firestore's cache without reading documents from the backend.

Version 8.0.0 - June 17, 2021

  • (iOS) A database URL is no longer required to be present in GoogleService-Info.plist when not using Realtime Database.

Analytics

  • Removed SetCurrentScreen() following its removal from the iOS SDK and deprecation in the Android SDK. Use LogEvent with ScreenView event to manually log screen changes.

Cloud Firestore

  • Internal assertions will now trigger C# exceptions.
  • Fix RunTransactionAsync() to roll back the transaction if the task returned from the given callback faults (#1042).

Instance ID

  • Removed support for the previously-deprecated Instance ID SDK.

Remote Config

  • The previously-deprecated static methods have been removed. Use the new instance-based FirebaseRemoteConfig API instead.
  • (Android) Fix for getting Remote Config instances for specific app objects. (#991).

Version 7.2.0 - May 3, 2021

Crashlytics

  • Added new Unity-specific metadata to help diagnose tricky crashes around specific hardware setups.

Realtime Database

  • Fixed a potential crash that can occur as a result of a race condition when adding, removing, and deleting ValueListeners or ChildListeners rapidly.
  • Fixed a crash when setting large values on Windows and Mac systems.

FCM

  • (Android) Fixed triggering of callback handlers for background notifications.

Version 7.1.0 - February 16, 2021

  • Add GoogleServices-Info.plist to Unity-iPhone target in Unity 2019.3+.

Authentication

  • You can now specify a language for emails and text messages sent from your apps using UseAppLanguage() or setting the FirebaseAuth.LanguageCode property.
  • Fixed a flaky crash when accessing the result from the task returned by FetchProvidersForEmailAsync.

Cloud Firestore

  • Fixed partial updates in UpdateAsync() with FieldValue.Delete (#882).
  • Fixed DocumentSnapshot.ToDictionary() on non-existent documents when running on Android (#887).
  • Fixed crash setting FirebaseFirestore.LogLevel on Android before any instances have been created (#888).

FCM

  • (Android) Now uses enqueueWork instead of startService. This fixes lost messages with data payloads received when the app is in the background. (#877.

Remote Config

  • Changed FirebaseRemoteConfig to be an instanced class, with new APIs to better manage fetching config data.
  • The old static methods are now deprecated, and can be accessed in the new class FirebaseRemoteConfigDeprecated.
  • ConfigSettings.IsDeveloperMode is now obsolete and does nothing. ConfigSettings.MinimumFetchInternalInMilliseconds should be adjusted instead.
  • Fixed numeric value conversion ConfigValue.DoubleValue and ConfigValue.LongValue to be locale independent.

Version 7.0.2 - December 21, 2020

Cloud Firestore

  • (Android) Fixes an error in the handling of Unicode strings.

Version 7.0.1 - December 8, 2020

Remote Config

  • (Android) Fixes an issue with missing symbols on Android.

Version 7.0.0 - December 2, 2020

  • (iOS) iOS SDKs are now built using XCode 11.7.
  • Removed deprecated service account APIs.

Analytics

  • Removed deprecated SetMinimumSessionDuration function.
  • Remove deprecated DynamicLinkComponents.DynamicLinkDomain. Please use DynamicLinkComponents.DomainUriPrefix instead.
  • (Android) Bump up Android library version and remove dependency to GMS app invite.

Cloud Firestore

  • Added support for WhereNotEqualTo and WhereNotIn queries.
  • Added new internal HTTP headers to the gRPC connection.
  • Added support for FirebaseFirestoreSettings.CacheSizeBytes.
  • Fixed a Unity Editor hang on Windows when restarting an app after listening to a query, document, or snapshots in sync (#845).
  • Fixed an intermittent crash in the Unity Editor when the app is restarted while a transaction is in progress (#783).
  • Fixed a crash when writing to a document after having been offline for long enough that the auth token expired (#872).

Firebase installations

  • Added Installations SDK.

Instance ID

  • Marked as deprecated.

FCM

  • Added getToken, deleteToken apis.
  • Removed deprecated Send function.

Cloud Storage

  • Remove deprecated DownloadUrl and DownloadUrls properties in StorageMetadata.

Version 6.16.1 - October 20, 2020

  • (Android) Fixes regression in 6.16.0 about Android build error "Program type already present: com.google.firebase.unity.BuildConfig" when building an Android app with the Crashlytics SDK in Unity 2019 and below.
  • Significantly reduced the filesize of the Linux libraries.

Realtime Database

  • Fixed an issue with persistent storage.

Version 6.16.0 - October 2, 2020

  • (iOS) The minimum supported Xcode version is 11.6.
  • Fixed an issue causing garbage collection every frame.
  • Fixed issues causing Unity 2020 Android builds to fail.
  • Improved the performance of Firebase Editor tools by delaying initialization when conditions are met and improving asset searching.
  • Deprecate Firebase.Unity.Editor.FirebaseEditorExtensions.

Crashlytics

  • Fixed an issue with the Crashlytics Run script on Unity 2018 and older.

Realtime Database

  • Enabled offline persistence.

Cloud Firestore

  • Fixed leaked memory in FirebaseFirestore C# objects.
  • Fixed CollectionReference.AddAsync() to propagate errors.
  • Changed async tasks to fault with FirestoreException.
  • Renamed the Error enum to FirestoreError.

FCM

  • Updated the library to be compatible with Android O.
  • Deprecated the Send function.

Version 6.15.2 - July 10, 2020

  • (iOS) The minimum supported Xcode version is 11.3.

Cloud Firestore

  • (iOS): Fixed the missing Dispose symbol by updating to the correct Cocoapod version.

Version 6.15.1 - June 29, 2020

  • Fixed an issue that cause Editor crash on the second time click play.
  • Fixed an issue that warns about Future handle not released properly.

Cloud Firestore

  • Significantly improved stability when reentering play mode, addressing this issue.
  • Fixed memory leaks that could cause a global reference table overflow on Android, addressing this issue.
  • Added the ListenerRegistration.ListenerTask property which facilitates discovering an error that causes the listener stream to stop.

Version 6.15.0 - June 2, 2020

  • Reduce editor freeze when play mode starts.

Crashlytics

  • Updated with the Firebase Crashlytics Android & iOS SDKs, which now use Firebase-specific endpoints rather than the deprecated Fabric endpoints. Crashlytics C# APIs have not changed.
  • Removed UI for managing Fabric API keys, which are no longer required. Migrated Fabric apps will automatically use the Google App Id as defined in the GoogleServicesInfo.plist and google-services.json files.
  • Fixed an issue when Crashlytics is imported using the Unity Package Manager.
  • Prevented stripping of Crashlytics code by the UnityLinker.

Cloud Firestore

  • Fixed several serialization issues on iOS.
  • Added WaitForPendingWritesAsync method which allows users to wait on a task that completes when all pending writes are acknowledged by the firestore backend.
  • Added TerminateAsync method which terminates the instance, releasing any held resources.
  • Added ClearPersistenceAsync method which clears the persistent cache, allowing unit/integration tests to be more isolated.
  • Added Query.LimitToLast(int n), which returns the last n documents as the result.
  • Removed the DocumentReference.ListenerDelegate and Query.ListenerDelegate delegates. These were intended to be internal-only types.

FCM

  • (Android) Using the MessagingUnityPlayerActivity will no longer interfere with Unity's built-in handling of deep links.

Version 6.14.1 - May 18, 2020

Authentication

  • Added a new method: Firebase.Auth.Credential.IsValid().
  • Added Firebase.Auth.FirebaseAccountLinkException which may be thrown by LinkAndRetrieveDataWithCredentialAsync. The exception includes a Firebase.Auth.UserInfo object which may contain additional information about the user's account.
  • (iOS): Added Firebase.Auth.UserInfo.UpdatedCredential. This credential may be valid in FirebaseAccountLinkExceptions indicating that the credential may be used to sign into Firebase as the Apple-linked user.

Version 6.14.0 - April 23, 2020

Cloud Firestore

  • Firestore.LoggingEnabled is replaced by Firestore.LogLevel for consistency with other Firebase Unity APIs. The getter for this property has been removed.

Crashlytics

  • (iOS) Removed references to UIWebView APIs to prevent App Store rejections.

Version 6.13.0 - March 23, 2020

  • The Firebase SDK is now available through Unity Package Manager (Unity 2018.4 or above). See the setup guide.
  • Updated asset labels so that External Dependency Manager works properly even if files in Firebase SDK are moved.

Cloud Firestore

  • QuerySnapshot.GetEnumerator() to not throw an InvalidCastException.
  • Added Query.WhereArrayContains() query operator to find documents where an array field contains a specific element.
  • Added FieldValue.ArrayUnion() and FieldValue.ArrayRemove() to atomically add and remove elements from an array field in a document.
  • Added Query.WhereIn() and Query.WhereArrayContainsAny() query operators. Query.WhereIn() finds documents where a specified field’s value is IN a specified array. Query.WhereArrayContainsAny() finds documents where a specified field is an array and contains ANY element of a specified array.

Version 6.12.0 - March 5, 2020

  • Added experimental support for Cloud Firestore SDK, available on all supported platforms. Please note that the API is subject to change.

Version 6.11.0 - February 20, 2020

  • (iOS) The minimum supported Xcode version is 10.3.
  • When creating a FirebaseApp, the ProjectId from the default FirebaseApp is now used if one is not provided.

Realtime Database

  • (Desktop) Fixed an issue with Database connecting to the server after the Auth token is revoked.

Version 6.10.0 - January 30, 2020

  • (Editor) Python 3 compatibility for resource generation script and added a fallback to use the Python interpreter on Windows 7/8.
  • (Editor) Removed debug logging when the resource generator script is executed.

Authentication

  • (Desktop) Fixed a deadlock that could cause the Unity Editor to freeze when disposing FirebaseAuth.
  • (iOS) Added a new version of OAuthProvider.GetCredential, which takes a nonce parameter as required by Apple Sign-in.

Version 6.9.0 - December 27, 2019

Authentication

  • Added FirebaseAuth.SignInWithProvider, FirebaseUser.LinkWithProvider, and FirebaseUser.ReauthenticateWithProvider, allowing sign-in with third-party auth providers.
  • Added constant ProviderId strings to the provider classes.
  • (iOS): Added support for linking Apple Sign-in credentials.

Crashlytics

  • Fixed build event reporting when Python 3 is installed on Mac or Linux machines.

FCM

  • (Android): Added the option to enable or disable message delivery metrics export to BigQuery. This functionality is currently only available on Android. Stubs are provided on iOS for cross platform compatibility.

Version 6.8.1 - December 16, 2019

  • (Desktop) Fixed core editor plugin so that it loads without the iOS Unity extension installed.

Crashlytics

  • (Desktop): Fixed Crashlytics editor plugin so that it loads without the iOS Unity extension installed.

Version 6.8.0 - December 3, 2019

  • Fixed an issue where resource generation from google-services.json would fail if python3 was used to execute the resource generation script.

Version 6.7.0 - November 13, 2019

Analytics

  • (iOS) Fixed the racy behavior of FirebaseAnalytics.GetAnalyticsInstanceId() after calling FirebaseAnalytics.ResetAnalyticsData().

Crashlytics

  • (iOS) Fixed an issue on iOS with Unity 2019.3 beta where the plugin fails to create a XCode run script to upload symbols.

Realtime Database

  • Fixed an issue causing timestamps to not be populated correctly when using DatabaseReference.UpdateChildren().
  • (Desktop) Fixed an issue preventing listener events from being triggered after DatabaseReference.UpdateChildren() is called.
  • (Desktop) Functions that take string parameters will now fail gracefully if passed a null pointer.
  • (Desktop) Fixed an issue that could result in an incorrect snapshot being passed to listeners under specific circumstances.
  • (Desktop) Fixed an issue causing DatabaseReference.RunTransaction() to fail due to datastale when the location previously stored a list with more than 10 items or a dictionary with integer keys.
  • Fixed an issue where removing delegate from DynamicLinks.DynamicLinkReceived does not stop the delegate from being called.

Cloud Storage

  • (iOS/Android) Fixed an issue where FirebaseStorage.GetReferenceFromUrl would return an invalid StorageReference.

Version 6.6.0 - September 25, 2019

Authentication

  • (Desktop) Fixed not loading provider list from cached user data.

Realtime Database

  • (Desktop) Fixed a crash that could occur when trying to keep a location in the database synced when you do not have permission.
  • (Desktop) Queries on locations in the database with query rules now function properly, instead of always returning "Permission denied".
  • (Desktop) Fixed the map-to-vector conversion when firing events that have maps containing enitrely integer keys.

Version 6.5.0 - September 10, 2019

  • The instance of FirebaseApp, FirebaseAuth, FirebaseDatabase, FirebaseFunctions, FirebaseInstanceId and FirebaseStorage will be kept alive after creation until explicitly disposed.

  • (Desktop): Fixed the freeze when playing in the editor for the more than once or when closing the editor, when keeping a static reference to either FirebaseAuth or FirebaseDatabase instances.

Authentication

  • (Linux) Improved error logging if libsecret (required for login persistence) is not installed on Linux.

Realtime Database

  • The database now supports setting the log level independently of the system level logger.

Version 6.4.0 - August 26, 2019

  • Added more underlying null checks when accessing objects that can potentially be deleted, throwing exceptions instead of crashing.
  • (iOS) Handle malformed Info.plist files when patching Xcode projects.

Authentication

  • Fixed an issue with updated user info not being persisted.

Realtime Database

  • (Desktop) Fixed a crash when saving a ServerTimestamp during a transaction.

Version 6.3.0 - August 14, 2019

  • (Editor) Fixed spurious errors about missing google-services.json file.
  • (iOS/Android) Fixed a bug that allows custom FirebaseApp instances to be created after the app has been restarted.

Authentication

  • (Desktop) Changed destruction behavior. Instead of waiting for all async operations to finish, now Auth will cancel all async operations and quit. For callbacks that are already running, this will protect against cases where auth instances might not exist anymore.
  • (iOS) Fixed an exception in PhoneAuthProvider.verifyPhoneNumber.
  • (iOS) Stopped Auth from hanging on destruction if any local tasks remain in scope.

Realtime Database

  • (Desktop) Fixed an issue that could cause a crash when updating the descendant of a location with a listener attached.

Version 6.2.2 - July 26, 2019

  • (Editor) Worked around regression in Unity 2019.2 and 2019.3 which caused DllNotFoundException.
  • (Editor) Add support for macOS 10.11.x.
  • Database/Storage/Functions may fail to send authentication token to server if FirebaseAuth is garbage-collected. If you are unable to access to the server due to "Permission Denied", please try to keep FirebaseAuth alive.

Authentication

  • (Editor) After loading a persisted user data, ensure token is not expired.

Realtime Database

  • (Editor) Fixed use of an expired auth token after it's loaded from persistent storage.
  • (Editor) Fixed a crash when calling UpdateChildrenAsync.
  • (Editor) Deprecated service account authentication.
  • (Editor) Fixed DatabaseReference.RunTransaction() sending invalid data to the server which causes error message "Error on incoming message" and freeze.

Cloud Functions

  • (Editor) Fixed use of an expired auth token after it's loaded from persistent storage.

Cloud Storage

  • (Editor) Fixed use of an expired auth token after it's loaded from persistent storage.

Version 6.2.1 - July 10, 2019

  • Fixed Crashlytics on Android incorrectly blocking all functionality.

Crashlytics

  • (Android) Fixed an issue causing it to report it was shut down, which blocked all functionality.

Version 6.2.0 - July 2, 2019

  • Updated Firebase iOS and Firebase Android dependencies.
  • Updated Play Services Resolver from 1.2.116 to 1.2.122 For more information, see this document. Added support for the Jetpack Jetifier , this allows the use of legacy Android support libraries with the latest release of Google Play Services that uses AndroidX.

  • Added a way to configure SDK-wide log verbosity.

  • (Editor) Fixed an issue that could cause errors when trying to read a google-services.json file with unicode characters in its path.

  • (Editor, iOS) Added support for patching Xcode projects in Unity 2019.3+.

  • Fixed a race that could lead to a crash when gabarge collecting FirebaseApp objects.

Crashlytics

  • (Android) Fixed a crash when logging large call stacks.
  • (Android) Fixed a crash in exception logging when the application is shutting down.

Instance ID

  • (Android) Fixed a crash when destroying InstanceID objects.
  • Fixed a crash if multiple Instance ID objects are created and destroyed quickly.
  • Added support for custom domains.

Realtime Database

  • (Editor) Moved Realtime Database to a C++ implementation on desktop to improve reliability across different Unity versions.
  • (Editor) Moved transaction callbacks to the main thread to mirror Android and iOS.
  • Added a way to configure log verbosity of Realtime Database instances.

Version 6.1.1 - June 7, 2019

  • (Editor): Fixed an issue when generating Firebase config files on Windows.
  • (Editor) Upgraded Play Services Resolver from 1.2.115 to 1.2.116. For more information see this document.

Version 6.1.0 - June 6, 2019

  • Updated Firebase iOS and Firebase Android dependencies.
  • (Editor): Upgraded Play Services Resolver to from 1.2.109 to 1.2.115. For more information see this document.
  • (Editor): Removed Firebase Invites documentation from the in-editor documentation.
  • (Editor): Fixed an issue with resource generation when Firebase plugin files have been moved from their default locations.
  • (iOS): Fixed an issue where connections via NSURLSession (used internally by the iOS SDK) can be prematurely closed by the client if NSAppTransportSecurity is set to YES in the Info.plist and NSAllowsArbitraryLoadsInWebContent is not set. This can be fixed by setting NSAllowsArbitraryLoadsInWebContent to the same value as NSAppTransportSecurity.

Authentication

  • (Desktop) User's credentials will now persist between sessions. See the documentation for more information.
  • (Desktop) As part of the above change, if you access CurrentUser immediately after creating the FirebaseAuth instance, it will block until the saved user's state is finished loading.
  • (Desktop) Fixed an issue where Database/Functions/Storage might not use the latest auth token immediately after sign-in.
  • (Android) Fixed an issue where an error code could get reported incorrectly on Android.

Crashlytics

  • Fixed an issue that could cause a crash during shutdown due to the destruction order of plugins being nondeterministic.

Realtime Database

  • (iOS) Fixed a race condition that could cause a crash when cleaning up database listeners on iOS.
  • (iOS) Fixed an issue where long (64-bit) values could get written to the database incorrectly (truncated to 32-bits) on 32-bit devices.

Cloud Functions

  • Fixed an issue that could cause a crash during shutdown due to the destruction order of plugins being nondeterministic.

FCM

  • (Android) Added channel_id to Messaging notifications.

Version 6.0.0 - May 7, 2019

  • Updated Firebase iOS and Firebase Android dependencies.
  • Added an extension method, Task.ContinueWithOnMainThread(), which forces the continuation of asynchronous operations to occur in the Unity main thread rather than in a background thread.
  • Upgraded Play Services Resolver to from 1.2.104 to 1.2.109. For more information see this document.
  • (Android): Added support for Android SDK installed directly in Unity 2019.
  • (iOS): Fixed issues generating projects without using Cocoapods.

Crashlytics

  • (iOS/Android) Crashlytics for Unity is now generally available (GA). Get the next evolution with BigQuery exports, Jira integration, and more. To migrate from Fabric Crashlytics for Unity to Firebase Crashlytics, follow the migration guide.

Realtime Database

  • (iOS/Android) Fixed an issue where integrating the SDK greatly increased the size of your app.
  • Fixed exception handling during listener events.

Authentication

  • (Desktop) Fixed a crash when attempting to call Game Center authentication methods from the Unity editor.

FCM

  • (iOS/Android): Fixed an issue where Subscribe and Unsubscribe never returned if the API was configured not to receive a registration token.

Invites

  • Removed Firebase Invites, as it is no longer supported.

Remote Config

  • Removed deprecated functions using config namespaces.
  • Fixed an issue parsing boolean values.

Analytics

  • Deprecated SetMinimumSessionDuration.

Version 5.7.0 - April 19, 2019

As this release of the Firebase Unity SDK is the final version to support Firebase Invites, it will remain available for download here.

  • (Android) Fixed an exception on resolution in some versions of Unity 2017.4 by changing how Android ABI selection is handled.

Authentication

  • Fixed UserProfile.PhotoUrl removing percent encoded characters when being set.

Remote Config

  • Config namespaces are now deprecated. You'll need to switch to methods that use the default namespace.

Version 5.6.1 - April 5, 2019

  • (iOS) Updated to the latest iOS SDK to fix a crash on firebase::App creation caused by a race condition. The crash could occur when accessing the [FIRApp firebaseUserAgent] property of the iOS FIRApp.
  • (Android) Fixed Java version check in Android resolver when using Java SE 12 and above.
  • (Android) Whitelisted Unity 2017.4 and above for ARM64 builds. Previously required ARM64 libraries would be stripped from all Unity 2017 builds resulting in a DllNotFoundException.

Version 5.6.0 - March 18, 2019

  • Fixed intermittent crashes caused when multiple native objects were garbage-collected at the same time.

Authentication

  • Added Game Center authentication.

Version 5.5.0 - February 19, 2019

  • (Android): Updated to using version 1.2.101 of the Android Resolver. Prompt the user before the resolver runs for the first time and allow the user to elect to disable from the prompt.

Crashlytics

  • Crashlytics for Unity is now available as a Beta release. Get the next evolution with BigQuery exports, Jira integration, and more. To migrate from Fabric Crashlytics for Unity to Firebase Crashlytics, follow the migration guide.

Invites

  • Invites is deprecated. Please refer to https://firebase.google.com/docs/invites for details.

Version 5.4.4 - January 18, 2019

  • (Android) Fixed packaging of AARs in the Android Resolver when using Unity 2018 and a recent version of Gradle.
  • Reduced auto-resolution frequency in iOS and Android Resolvers, speeding up builds and reducing memory footprint.
  • Fixed an issue with version number handling in iOS and Android Resolvers.
  • (iOS) Fixed an issue that caused apps to crash when exiting the app.
  • Fixed parsing of Unity 5.6 metadata.
  • Workaround for Unity 2018.3 and newer ignoring the "Any" platform.
  • The garbage collection race condition mentioned in version 5.4.2 still occurs in Firebase Auth, Database, Storage, and Instance ID. To work around the issue until a fixed is released, keep a reference to the Firebase object instance (for example, FirebaseAuth.DefaultInstance) to prevent garbage collection.

Realtime Database

  • Fixed an issue where certain DataSnapshots were missing data on iOS and Android.

Cloud Functions

  • (Android) Fixed an issue with error handling.

Version 5.4.3 - November 30, 2018

Cloud Storage

  • (iOS): Fixed an issue when downloading files with GetBytesAsync.

Version 5.4.2 - November 15, 2018

  • General (Android): Fixed an infinite loop in Android Resolver when using auto-resolution.
  • App: Fixed a race condition causing an occasional crash when FirebaseApp is garbage collected.

Authentication

  • (Android): Removed an irrelevant error about the Java class FirebaseAuthWebException.

Realtime Database

  • Fixed a race condition causing an occasional crash when FirebaseDatabase is garbage collected.

Version 5.4.1 - November 5, 2018

Analytics

  • (iOS) Fixed issue with Google Analytics and Google App Measurement mismatch.

Version 5.4.0 - October 19, 2018

  • : Added plugins that are pre-configured for import into .NET 4.x Unity projects.

Realtime Database

  • Added method to enable persistence on mobile platforms.
  • (Android): Fixed short link generation failing with "error 8".

Version 5.3.1 - October 3, 2018

  • Added symbols for all C# assemblies.
  • (Android) Improved module initialization so that the Unity SDK does not attempt to use Android libraries unless the C# assembly is included. For example, this allows users of the Analytics plugin to use the firebase-messaging Android library without the Firebase Unity FCM component.
  • (Editor) Fixed loading of the Firebase.Editor.dll component in Unity 2018.3.0b2
  • (Editor) Updated the Play Services Resolver from version 1.2.88 to 1.2.91, see the GitHub changelog for details.
  • (Editor): Fixed the Android "Open in Console" button of the Firebase window (accessible under the Window > Firebase menu option) to correctly open the Firebase console in a web browser when the selected target platform is not Android in Unity 5.6 and above.

Invites

  • (Android): Fixed an exception when the Android Minimum Version code option is used on the Android.

Version 5.3.0 - September 20, 2018

  • (iOS) The minimum supported Xcode version is 9.4.1.
  • (Android) Fixed an issue resolving certain types of version conflicts in the Android Resolver.

Realtime Database

  • (Desktop) Fixed issues in ChildListener.
  • (Desktop) Fixed crash that could occur if the Database was deleted while an asynchronous operation was still in progress.

Cloud Functions

  • (Android) Fixed an issue when a function returns an array.

Cloud Storage

  • Fixed issues when transactions are canceled in .NET 4.6.

Version 5.2.1 - August 16, 2018

  • Fixed an issue resolving certain types of version conflicts in the Android Resolver.
  • Firebase now throws an exception if any Firebase libraries are initialized while CheckAndFixDependenciesAsync() is still in progress.

Authentication

  • Fixed a race condition that was returning the wrong Task when you called the same method twice in quick succession.

Realtime Database

  • Fixed a race condition that was returning the wrong Task when you called the same method twice in quick succession.
  • (iOS/Android) Fixed a crash in DatabaseReference/Query during garbage collection (and other times).

Version 5.2.0 - July 23, 2018

  • (Android) Fixed a null reference in the Google Play Services availability checker.
  • (Android) Fixed problems merging Android library manifests in Unity 2018.
  • (Android) Added arm64-v8a build support.

Authentication

  • Fixed per-frame allocation in the token refresh logic.
  • (Android) Fixed a crash in FirebaseUser.UpdatePhoneNumberCredentialAsync().

Realtime Database

  • Added a version of GetInstance() that allows passing in the URL of the database to use.

Cloud Functions

  • Added a way to specify which region to run the function in.

FCM

  • Added SubscribeAsync() and UnsubscribeAsync(), which return Tasks, and deprecated Subscribe() and Unsubscribe().

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

Cloud 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, Cloud 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().
  • (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().

Cloud 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

Cloud 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.
  • (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.

Cloud Storage

  • Fixed Metadata::content_language returning the wrong data.
  • (iOS) Reference paths formats are now consistent with other platforms.
  • (iOS) Fixed an issue where trying to upload to a non-existent path would not complete the 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.

Cloud 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.

Cloud 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.

Cloud 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.
  • (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.
  • 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.
  • 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.

Cloud 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.

Cloud Storage

  • The Cloud 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.

Cloud 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