Aug 15, 2020 - v10.2.1
- Upgrade Firebase iOS SDK to v6.30.0.
- Migrate from Firebase Instance Id to Firebase Installations Service.
- Firebase Instance Id deprecated and will be removed in next version
Jul 31, 2020 - v10.0.0
- Upgrade dependencies for Android to the latest versions.
- Fixed some minor issues and refactor native codes.
Jun 10, 2020 - v9.12.1
- (Crashlytics) Fix an issue related to updating manifest on the ANELAB. If you are applying changes manually you have to remove this part from your manifest.
<provider
android:name="com.crashlytics.android.CrashlyticsInitProvider"
android:authorities="{PACKAGE_NAME}.crashlyticsinitprovider"
android:exported="false"
android:initOrder="99"/>
Jun 09, 2020 - v9.12.0
- (Firestore) Added an
addSnapshotsInSyncListener()
method to Firestore that notifies you when all your snapshot listeners are in sync with each other. You can remove listener usingremoveSnapshotsInSyncListener()
method. - (Firestore) Added a dependency on the
abseil
on iOS for ANELAB. If you're manually tracking dependencies, you need to add it to your SDK path. - (Firestore) Removed Firestore's dependency on the
Protobuf
on iOS for ANELAB. If you're manually tracking dependencies, you may be able to remove it from your SDK path (note, however, that other Firebase components may still require it). - (Firestore) Firestore no longer loads its TLS certificates from a bundle, which fixes crashes at startup when the bundle can't be loaded. This fixes a specific case where the bundle couldn't be loaded due to non-ASCII characters in the application name. If you're manually tracking dependencies, you can now remove
gRPCCertificates-Cpp.bundle
from your build. - (Analytics) Firebase InstanceID SDK dependency replaced by Firebase Installations SDK for iOS.
- (Auth) Added support for Sign-in with Apple.
- (Auth) Fixed rawNonce in encoder credential.
- (Crashlytics) Removed the Fabric API Key. Now, Crashlytics uses the
GoogleService-Info.plist
andgoogle-services.json
files to associate your app with your project. If you linked your app from Fabric and want to upgrade to the new SDK, remove the Fabric API key from your run and upload-symbols scripts. We also recommend removing the Fabric section from your app's manifest (when you upgrade, Crashlytics uses the new configuration you set up in Firebase).
Jun 08, 2020 - v9.11.1
- (Crashlytics) Bug fixes and some improvements.
Jun 07, 2020 - v9.11.0
- (Crashlytics) Upgrade to the Firebase Crashlytics SDK.
May 24, 2020 - v9.10.1
- Fix a minor issue on FirebaseCore related to ANE-LAB.
May 23, 2020 - v9.10.0
- (Firestore) Added
whereIn()
andwhereArrayContainsAny()
query operators.whereIn()
finds documents where a specified field’s value is IN a specified array.whereArrayContainsAny()
finds documents where a specified field is an array and contains ANY element of a specified array. - (Firestore) Added
limitToLast(long)
, which returns the last n documents as the result. - (Firestore) Added a
Firestore.terminate()
method which terminates the instance, releasing any held resources. Once it completes, you can optionally callclearPersistence()
to wipe persisted Cloud Firestore data from disk. - (RemoteConfig) Added a method that fetches configs and activates them:
RemoteConfig.fetchAndActivate()
. - (RemoteConfig) Network connection timeout for fetch requests is now customizable. To set the network timeout, use
setFetchTimeoutInSeconds(long)
onRemoteConfigSettings
. - (RemoteConfig) The default minimum fetch interval is now customizable. To set the default minimum fetch interval, use
setMinimumFetchIntervalInSeconds(long)
onRemoteConfigSettings
. - (Performance) Upgrade RemoteConfig dependency version.
May 21, 2020 - v9.9.2
- (Functions) Fix a minor issue related to the FirebaseCore.
May 20, 2020 - v9.9.1
- Fix a minor issue on FirebaseCore related to ANE-LAB.
May 19, 2020 - v9.9.0
- Upgraded to Firebase SDK 6.18.0 for iOS. update all the older .framework and resources. based on this list
May 11, 2020 - v9.5.0
- Upgraded to Firebase SDK 6.9.0 for iOS. update all the older .framework and resources. based on this list
May 01, 2020 - v9.1.0
- (Performanc) Removed the deprecated counter API. Use metrics API going forward.
- (Analytics) Adds the ability for an app to specify whether events logged by Google Analytics can be used to personalize ads for the user.
- (Database) Added support for the Firebase Realtime Database Emulator. To connect to the emulator, specify "http://:/?ns=" as your Database URL (via DB.init(String)). Note that if you are running the Realtime Database Emulator on "localhost" and connecting from an app that is running inside an Android Emulator, the Realtime Database Emulator host will be "10.0.2.2" followed by its port.
- (Storage) Added list() and listAll(), which allows developers to list the files and folders under the given StorageReference.
- (Storage) Added getCacheControl(), getContentDisposition(), getContentEncoding(), getContentLanguage(), and getContentType() to StorageMetadata to provide access to the current state of the metadata.
- (Auth) Added integration support for authenticate using apple signin.
Apr 04, 2020 - V9.0.1
- Upgraded to Androidx libraries.
- Upgraded to Firebase SDK 17.2.1 for Android. update the dependencies based on this list
- Upgraded to Firebase SDK 6.5.0 for iOS. update all the older .framework and resources. based on this list
- Replace the following dependencies:
<extensionID>com.myflashlab.air.extensions.dependency.androidSupport.arch</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.androidSupport.core</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.androidSupport.v4</extensionID>
with these:
<extensionID>com.myflashlab.air.extensions.dependency.androidx.arch</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.androidx.core</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.androidx.lifecycle</extensionID>
- Remove the following server tag:
<service
android:name="com.google.firebase.iid.FirebaseInstanceIdService"
android:exported="true">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
- Add the following provider:
<!-- Required by androidx_lifecycle.ane Change {PACKAGE_NAME} to your own app package name -->
<provider
android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer"
android:authorities="{PACKAGE_NAME}.lifecycle-process"
android:exported="false"
android:multiprocess="true"/>
- (FCM) the following new dependencies must be added:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.datatransport</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.firebase.encoders.json</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.firebase.addons.fcm</extensionID>
- (FCM) the following new service tags must be added under the android
<application>
tag:
<!-- Required by firebase_addons_fcm.ane -->
<service
android:name="com.google.android.datatransport.runtime.backends.TransportBackendDiscovery"
android:exported="false">
<meta-data
android:name="backend:com.google.android.datatransport.cct.CctBackendFactory"
android:value="cct"/>
</service>
<service
android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"/>
<receiver
android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver"
android:exported="false"/>
- (FCM) the following two
meta-data
must be added under the `` tag:
<service android:name="com.google.firebase.components.ComponentDiscoveryService" android:exported="false">
<!--
Previous meta-data tags for Firebase core and other children...
...
-->
<!-- Required by firebase_messaging.ane -->
<meta-data
android:name="com.google.firebase.components:com.google.firebase.messaging.FirebaseMessagingRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
<!-- Required by firebase_datatransport.ane -->
<meta-data
android:name="com.google.firebase.components:com.google.firebase.datatransport.TransportRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
</service>
-
(FCM) implemented OneSignal functionalety into FCM.
-
(FCM) For OneSignal library, the folloiwng dependencies must also be added:
<extensionID>com.myflashlab.air.extensions.dependency.googlePlayServices.places</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.googlePlayServices.location</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.androidx.design</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.androidx.browser</extensionID>
- (FCM) OneSignal library requiers the following permissions added to the manifest also: Don't forget to replace {PACKAGE_NAME} to your app's package name before copy pasting.
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<permission android:name="{PACKAGE_NAME}.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="{PACKAGE_NAME}.permission.C2D_MESSAGE"/>
<!-- Samsung -->
<uses-permission android:name="com.sec.android.provider.badge.permission.READ"/>
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>
<!-- HTC -->
<uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/>
<!-- Sony -->
<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"/>
<uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/>
<!-- Apex -->
<uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT"/>
<!-- Solid -->
<uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE"/>
<!-- Huawei -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
<!-- ZUK -->
<uses-permission android:name="android.permission.READ_APP_BADGE"/>
<!-- OPPO -->
<uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS"/>
<!-- EvMe -->
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_READ"/>
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_WRITE"/>
- (FCM) And finally, for OneSignal library to work, you need to add the folloiwng to the
<application>
tag of your Android setup: Don't forget to replace the data inside {xxxx} to the correct data.
<!-- Required if using OneSignal -->
<meta-data android:name="onesignal_app_id" android:value="{ONESIGNAL_APP_ID}"/>
<meta-data android:name="onesignal_google_project_number" android:value="str:REMOTE"/>
<receiver
android:name="com.onesignal.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter android:priority="999">
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<category android:name="{PACKAGE_NAME}"/>
</intent-filter>
</receiver>
<receiver android:name="com.onesignal.NotificationOpenedReceiver"/>
<service android:name="com.onesignal.GcmIntentService"/>
<service android:name="com.onesignal.GcmIntentJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:name="com.onesignal.RestoreJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:name="com.onesignal.RestoreKickoffJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:name="com.onesignal.SyncService" android:stopWithTask="true"/>
<service android:name="com.onesignal.SyncJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<activity android:name="com.onesignal.PermissionsActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<service android:name="com.onesignal.NotificationRestoreService"/>
<receiver android:name="com.onesignal.BootUpReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
<receiver android:name="com.onesignal.UpgradeReceiver">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
</intent-filter>
</receiver>
- (FCM) For OneSignal to work on the iOS side, you must add the following under: Don't forget to replace {ONESIGNAL_APP_ID}.
<key>onesignal_app_id</key>
<string>{ONESIGNAL_APP_ID}</string>
- (Storage) Beside the older dependencies, the following dependencies are needed to be added too:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.auth</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.googlePlayServices.flags</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.gson</extensionID>
- (DB) Beside the older dependencies, the following dependencies are needed to be added too:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.auth</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.googlePlayServices.flags</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.gson</extensionID>
- (Functions) Replace this dependnecy
<extensionID>com.myflashlab.air.extensions.dependency.firebase.addons</extensionID>
with the following:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.addons.squareup</extensionID>
- (Firestore) Replace this dependnecy
<extensionID>com.myflashlab.air.extensions.dependency.firebase.addons</extensionID>
with the following ones:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.addons.firestore</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.firebase.addons.squareup</extensionID>
- (Auth) Need to add REVERSED_CLIENT_ID from the GoogleService-Info.plist file to the manifest for iOS side under the
<InfoAdditions>
tag:
<!-- Add REVERSED_CLIENT_ID from the GoogleService-Info.plist file -->
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>google</string>
<key>CFBundleURLSchemes</key>
<array>
<string>{REVERSED_CLIENT_ID}</string>
</array>
</dict>
</array>
- (MLKIT) MLKIT development is temporarily discontinues.
Aug 3, 2019 - V8.0.1
- Added support for Android 64-bit
- Supports iOS 10+
Jun 16, 2019 - V8.0.0
- Updated to Firebase SDK 16.0.8 for Android. update the dependencies based on this list
- Updated to Firebase SDK 5.20.2 for iOS. update all the older .framework and resources. based on this list
- Minimum iOS version to support the Firebase ANEs will be iOS 10.0+ from now on
- (Core) The current /Users/{username}/Documents/AIR_32.116/lib/android/bin/dx.jar file in AIRSDK is too old! until Adobe updates that file, we may use the newer version copied from Android SDK build tools 28.0.3 /Users/{username}/Library/Android/sdk/build-tools/28.0.3/lib/dx.jar
- (Core) Because of another bug in AIR SDK, you need to manually copy the file framework lclang_rt from xcode 10.1 to your AIR SDK. This is explained in this video.
- (Core) Added
android:exported="false"
to the ComponentDiscoveryService service:
<service android:name="com.google.firebase.components.ComponentDiscoveryService" android:exported="false">
- (Core) Removed the following tags:
<permission android:name="{package_name}.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="{package_name}.permission.C2D_MESSAGE"/>
- (Core) Removed the
<category android:name="{package_name}"/>
tag from the following service:
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
</intent-filter>
</receiver>
- (Core) Removed the dependency:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.measurement.connector.impl</extensionID>
-
(Core) Removed deprecated setter
Firebase.getConfig().projectID
. it will be read automatically. -
(Core) You need to copy the libclang_rt.ios.a file from xcode 10 to your AIRSDK. This video tutorial shows you how.
-
(Core) Removed the following frameworks from iOS requirements:
- FirebaseNanoPB.framework
- GoogleToolboxForMac.framework
-
(Core) Added the following frameworks to iOS requirements:
- FIRAnalyticsConnector.framework
- GoogleAppMeasurement.framework
- GoogleUtilities.framework
-
(Core) Added global property
Firebase.dataCollectionDefaultEnabled
. default value is true. -
(Core) Added new method
Firebase.makeGooglePlayServicesAvailable
. -
(Core) Google deprecated the FirebaseInvites and we removed that ANE. Instead, all its features are now implemented into the DynamicLinks ANE. Because of this change, the property
Firebase.listener
is removed along with the following events:
FirebaseEvents.GOOGLE_API_CONNECTION_SUCCESS
FirebaseEvents.GOOGLE_API_CONNECTION_FAILURE
FirebaseEvents.GOOGLE_API_CONNECTION_CANCELED
-
(Analytics) setter
minimumSessionDuration
is deprecated and won't do anything. From now on, sessions start as soon as app comes to foreground. more info here. -
(Analytics) Removed deprecated const AnalyticsParam.SIGN_UP_METHOD
-
(Firestore) Added dependency firebase_auth.ane (com.myflashlab.air.extensions.dependency.firebase.auth)
-
(Firestore) iOS depends on the following frameworks:
- BoringSSL-GRPC.framework
- FirebaseFirestore.framework
- gRPC-C++.framework
- gRPC-Core.framework
- leveldb-library.framework
- Protobuf.framework
-
(Firestore) The constent FieldValue.TIMESTAMP is removed. instead used the method
FieldValue.TIMESTAMP();
-
(Firestore) The constent FieldValue.DELETE is removed. instead used the method
FieldValue.DELETE();
-
(Firestore) Added new FieldValue methods:
FieldValue.INCREMENT(value:Number);
FieldValue.ARRAY_UNION(value:Vector.<String>);
FieldValue.ARRAY_REMOVE(value:Vector.<String>);
-
(Firestore) Added new property
cacheSizeBytes
to class FirestoreSettings. -
(RemoteConfig) Added new meta-data tags under
<service android:name="com.google.firebase.components.ComponentDiscoveryService" android:exported="false">
service:
<meta-data
android:name="com.google.firebase.components:com.google.firebase.remoteconfig.RemoteConfigRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data
android:name="com.google.firebase.components:com.google.firebase.abt.component.AbtRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
- (RemoteConfig) Android now has a new dependency:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.abt</extensionID>
- (RemoteConfig) Deprecated the listener
RemoteConfig.listener.addEventListener(RemoteConfigEvents.FETCH_RESULT, onFetched);
and will be removed in future versions. instead, you must use the callback function from theRemoteConfig.fetch
method to know when the fetch operation is completed:
RemoteConfig.fetch(cacheExpiration, function ($error:Error):void
{
if($error)
{
trace($error.message);
}
else
{
trace("Fetch was successful, Now, let's call RemoteConfig.activateFetched() to activate the new data");
// When you fetch the new information from server, you can activate them anytime you think is appropriate in your app
RemoteConfig.activateFetched();
}
});
- (DB) Added new meta-data tag under
<service android:name="com.google.firebase.components.ComponentDiscoveryService
service:
<meta-data
android:name="com.google.firebase.components:com.google.firebase.database.DatabaseRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
- (Storage) Added new meta-data tag under
<service android:name="com.google.firebase.components.ComponentDiscoveryService
service:
<meta-data
android:name="com.google.firebase.components:com.google.firebase.storage.StorageRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
- (FCM) Added
android:exported="false"
to<service android:name="com.myflashlab.firebase.fcm.MyFirebaseMessagingService">
- (FCM) Added new event
FcmEvents.DELETED_MESSAGES
. - (DynamicLinks) Removed dependency
<extensionID>com.myflashlab.air.extensions.dependency.googlePlayServices.appinvite</extensionID>
- (DynamicLinks) Added new meta-data tag under
<service android:name="com.google.firebase.components.ComponentDiscoveryService
service:
<meta-data
android:name="com.google.firebase.components:com.google.firebase.dynamiclinks.internal.FirebaseDynamicLinkRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
- (DynamicLinks) property
SocialMediaParams.su
is deprecated and not used anymore. instead you should useSocialMediaParams.si
. - (DynamicLinks) property
DynamicLinks.api
is no longer available. to build dynamiclinks, you must use the new methods:
var myLink:String = DynamicLinks.build(
"myflashlabs.page.link", // You must have created this URL Prefix from your Firebase Console
"https://www.myflashlabs.com/deeplinks",
androidParams, // optional
iosParams, // optional
socialMediaParams, // optional
analyticsParams, // optional
otherPlatformParams, // optional
navigationParams, // optional
"MY_INVITATION_ID"); // optional
// then use the method to create the short link version of your dynamiclink
DynamicLinks.toMakeShort(myLink, function ($link:String, $raw:String):void
{
trace("$raw = " + $raw);
if($link)
{
trace("$link = " + $link);
}
});
- (DynamicLinks) for your convenient, a new method is introduced:
DynamicLinks.share
. - (Invites) Firebase invites is deprecated and removed by Google. From now on, you can create dynamiclinks with your own custom invitation id using
DynamicLinks.build
method. Then, in your app you must be listening toDynamicLinksEvents.INVOKE
event and check if the invitationId is available or not.
DynamicLinks.listener.addEventListener(DynamicLinksEvents.INVOKE, onDynamicLinksInvoke);
private function onDynamicLinksInvoke(e:DynamicLinksEvents):void
{
trace("e.link = " + e.link);
trace("e.invitationId = " + e.invitationId);
}
- (Auth) Auth ANE is no longer dependent on Firebase Invites. (Invites is removed and its functionality is moved into DynamicLinks)
- (Auth) changed activity params for
com.google.firebase.auth.internal.FederatedSignInActivity
to:
<activity
android:name="com.google.firebase.auth.internal.FederatedSignInActivity"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleTask"
android:permission="com.google.firebase.auth.api.gms.permission.LAUNCH_FEDERATED_SIGN_IN"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
-
(Auth) Added property
dynamicLinkDomain
to classActionCodeSettings
. that is used in out-of-band email action flows. -
(MLKIT) MLKIT is still in beta version (by Google) and when new versions are released, they might not be backword compatible. till the alpha version is released things can change drastically. Follow the new instruction and new usage sample code on our GitHub repository.
-
(MLKIT) iOS depends on the following frameworks:
- FirebaseMLCommon.framework
- FirebaseMLModelInterpreter.framework
- GTMSessionFetcher.framework
- tensorflow_lite.framework
- FirebaseMLNaturalLanguage.framework
- FirebaseMLNLLanguageID.framework
- FirebaseABTesting.framework
- FirebaseMLNLSmartReply.framework
- FirebaseRemoteConfig.framework
- Protobuf.framework
- FirebaseMLVision.framework
- GoogleAPIClientForREST.framework
- GoogleMobileVision.framework
- GoogleToolboxForMac.framework
- BarcodeDetector.framework
- FirebaseMLVisionBarcodeModel.framework
- FaceDetector.framework
- FirebaseMLVisionFaceModel.framework
- FirebaseMLVisionLabelModel.framework
- LabelDetector.framework
- FirebaseMLVisionTextModel.framework
- TextDetector.framework
-
(MLKIT) iOS depends on the following resources:
- GoogleMVFaceDetectorResources.bundle
- GoogleMVTextDetectorResources.bundle
- PredictOnDeviceResource.bundle
-
(Performance) Added Firebase Performance
-
(Functions) Added Firebase Functions
Nov 16, 2018 - V7.0.1
- Works with OverrideAir ANE V5.6.1 or higher
- Works with ANELAB V1.1.26 or higher
- (Auth) new dependency is required:
<extensionID>com.myflashlab.air.extensions.dependency.gson</extensionID>
<extensionID>com.myflashlab.air.extensions.dependency.googlePlayServices.flags</extensionID>
- (Firestore) new dependency is required:
<extensionID>com.myflashlab.air.extensions.dependency.gson</extensionID>
Sep 20, 2018 - V7.0.0
- Updated Android dependencies. Google has recently decided to update GooglePlayService and Firebase dependencies separately. Because of this decision, we have also updated our dependency ANEs. checkout this page to know the version of ANEs which should be added to your project to make this version of Firebase ANEs work correctly.
- Updated to Firebase SDK 5.4.1 for iOS. update all the older .framework and resources. https://dl.google.com/firebase/sdk/ios/5_4_1/Firebase-5.4.1.zip
- Updated Crashlytics iOS SDK to V3.10.7. You should copy the new .framework files to your AIR SDK. Download from here.
- Added support for Firebase MLKIT. This ANE is still in beta phase.
- (Core) Calling
Firebase.iid.getToken
would be valid only when passing$authorizedEntity
and$scope
. - (Core) Instead of method
getToken
, use the new methodFirebase.iid.getInstanceId();
. - (Core) Removed event
FirebaseEvents.IID_TOKEN_REFRESH
. You must useFCM.listener.addEventListener(FcmEvents.TOKEN_REFRESH, onTokenRefresh);
from now on. - (Core) Removed:
<service android:name="com.myflashlab.firebase.core.MyFirebaseInstanceIdService" android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
- (Core) Added:
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
- (Core) Added:
<service android:name="com.google.firebase.components.ComponentDiscoveryService">
<!-- Required by firebase_iid.ane -->
<meta-data
android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
<!-- Required by firebase_measurementConnectorImpl.ane -->
<meta-data
android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar"/>
<!--
FirebaseAuth and Crashlytics has their own meta-data tag also. And if you are using them in your app, you must add them
under this <service> tag. Follow the changelog list below and you'll learn more about this.
-->
</service>
- (FCM) Added Events:
FcmEvents.ON_SUBSCRIBE
andFcmEvents.ON_UNSUBSCRIBE
to know when topic un/subscription is completed. - (FCM) Removed
getToken
and addedgetInstanceId
method:
FCM.getInstanceId(onTokenReceived);
function onTokenReceived($token:String, $error:String):void
{
if($error)
{
trace("onTokenReceived error: " + $error);
}
if($token)
{
trace("token: " + $token);
}
}
- (FCM) Removed:
<service android:name="com.myflashlab.firebase.fcm.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
- (Analytics) Added attribute exported="true" to
com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver
and moreover, moved all manifest setup from analytics to FirebaseCore. - (Analytics) Added new public method
resetAnalyticsData
to clear all Analytics data as well as reset App Instance ID. - (Auth) Removed deprecated method
Firebaseuser.getToken
. UsegetIdToken
instead. - (Auth) Added class
TokenResult
. is accessible from “FirebaseUserEvents.GET_USER_TOKEN” event. access token usinge.tokenResult
FirebaseUser.listener.addEventListener(FirebaseUserEvents.GET_USER_TOKEN, onGetUserToken);
private function onGetUserToken(e:FirebaseUserEvents):void
{
if(e.result == Auth.RESULT_SUCCESS)
{
trace("onGetUserToken result == Auth.RESULT_SUCCESS");
trace("e.tokenResult.token: " + e.tokenResult.token);
trace("e.tokenResult.claims: " + JSON.stringify(e.tokenResult.claims));
trace("e.tokenResult.authTimestamp: " + new Date(e.tokenResult.authTimestamp).toLocaleString());
trace("e.tokenResult.expirationTimestamp: " + new Date(e.tokenResult.expirationTimestamp).toLocaleString());
trace("e.tokenResult.issuedAtTimestamp: " + new Date(e.tokenResult.issuedAtTimestamp).toLocaleString());
trace("e.tokenResult.signInProvider: " + e.tokenResult.signInProvider);
}
else
{
trace("onGetUserToken result != Auth.RESULT_SUCCESS");
}
}
- (Auth) Added new
meta-data
tag as follow. make sure you are adding this to the currently existing<service>
tag.
<service android:name="com.google.firebase.components.ComponentDiscoveryService" >
<meta-data
android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
</service>
- (Auth) There's a known bug in AIR SDK explained here. If you are seeing this problem when compiling the iOS side of your app, check out this video for the fix.
- (Auth) Features like
Auth.sendSignInLinkToEmail
need DynamicLink And Invites to be implemented in the project already. - (Auth) FirebaseAuth has too many APIs based on Firebase Invites and Dynamic Links. So, we have made it dependent on FirebaseInvite when using the ANELAB software. FirebaseInvite is also dependent on FirebaseDynamicLinks. It is strongly recommended to implement DynamicLinks and invites prior to implementing Auth to your app.
- (Firestore) Removed
QueryListenOptions
class and added MetadataChanges class to be used withaddSnapshotListener
method. You don't need to initialize the new class, simply passMetadataChanges.INCLUDE
orMetadataChanges.EXCLUDE
as the last parameter ofaddSnapshotListener
method. - (Firestore) Query and collection
read
methods now optionally takes a MetadataChanges value. Notice that by default, metadata-only document changes are suppressed in theread()
method, even when listening to a query with MetadataChanges.INCLUDE. - (Firestore) Added the ability to control whether
read
method for documents and queries should fetch from server only, cache only, or attempt server and fall back to the cache. By default, both methods still attempt server and fall back to the cache. check the new class Source. - (Firestore) Added a
Firestore.setServerTimestampBehavior
to control how DocumentSnapshots return unresolved server timestamps.- DocumentSnapshot.ServerTimestampBehavior_NONE
- DocumentSnapshot.ServerTimestampBehavior_ESTIMATE
- DocumentSnapshot.ServerTimestampBehavior_PREVIOUS
- (Firestore) Added new
meta-data
tag as follow. make sure you are adding this to the currently existing<service>
tag.
<service android:name="com.google.firebase.components.ComponentDiscoveryService" >
<meta-data
android:name="com.google.firebase.components:com.google.firebase.firestore.FirestoreRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
</service>
- (Firestore) mergeFields is now available on the iOS side also. Prior to this version, it was supported on the Android side only.
- (Storage) Removed
downloadUrl
anddownloadUrls
from StorageMetadata class and addedref
property which returns a reference to theStorageReference
object of the current StorageMetadata. You may use thegetDownloadUrl
method of this object instead of the removed ones. - (Storage) Added support for
StorageEvents.TASK_COMPLETE
on instances of UploadTask and FileDownloadTask:
fileDownloadTask.addEventListener(StorageEvents.TASK_COMPLETE, onDownloadFileComplete);
function onDownloadFileComplete(e:StorageEvents):void
{
if(e.error)
{
trace("onDownloadFileComplete: " + e.error.message);
}
else
{
trace("onDownloadFileComplete");
}
}
May 20, 2018 - V6.5.0
- Added support for Firebase Crashlytics V6.5.0
- Use iOS frameworks V3.10.1 for Crashlytics.
Apr 22, 2018 - V6.5.0
- Updated to Firebase SDK 12.0.1 for Android. update all the depenency ANEs.
- Updated to Firebase SDK 4.11.0 for iOS. update all the .framework and resources. https://dl.google.com/firebase/sdk/ios/4_11_0/Firebase-4.11.0.zip
- (Core) You need to regenerate the core ANE using the ane generator software V6.5.0 and you need to update all the other Firebase children that you are using in your project.
- (Core) multidex attribute added to the main android application tag in the manifest:
android:name="android.support.multidex.MultiDexApplication"
- (Firestore) Removed the following framework dependencies:
- FirebaseAuth
- GTMSessionFetcher
- (Firestore) batch.commit now takes a param
$listenForCallback
. if set to false, FirestoreEvents.BATCH_SUCCESS or FirestoreEvents.BATCH_FAILURE won’t be dispatched. - (Firestore) Added methods: disableNetwork/enableNetwork
- (Analytics) introduced new analytics events and params. Check asdoc for more details.
- (Analytics) Setting the ID to null removes the user ID.
- (Auth) new Activity tag should be added to the manifest as follow:
<activity
android:name="com.google.firebase.auth.internal.FederatedSignInActivity"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleInstance"
android:permission="com.google.firebase.auth.api.gms.permission.LAUNCH_FEDERATED_SIGN_IN"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
- (Auth) Added
AdditionalUserInfo
class,e.additionalUserInfo
getter for events:- AuthEvents.CREATE_NEW_USER_RESULT
- AuthEvents.SIGN_IN_RESULT
- FirebaseUserEvents.LINK_WITH_RESULT
- (Auth) Added Email Link Authentication feature.
Auth.sendSignInLinkToEmail
,Auth.isSignInWithEmailLink
. - (Auth) Deprecated
fetchProvidersForEmail
. use new methodfetchSignInMethodsForEmail
instead. - (Auth) Renamed
signInWithEmail
method tosignInWithEmailPass
and also added new method:signInWithEmailLink
. - (Auth) Deprecated
AuthProvider.EMAIL
. use new constAuthProvider.EMAIL_PASS
instead and also added new constAuthProvider.EMAIL_LINK
. - (Auth) Deprecated
setEmailAuthProvider
. use new methodsetEmailPassAuthProvider
instead and also added new methodsetEmailLinkAuthProvider
. - (Auth) ON ANDROID, Added the ability to use Google Play Games as a sign-in provider in your Firebase Project
setPlayGamesAuthProvider
. - (FCM) Added
autoInitEnabled
property. - (Storage) Added md5Hash property to StorageMetadata.
Dec 15, 2017 - V6.0.0
- Updated to Firebase SDK 11.6.0 for Android. Make sure to update all your dependency files based on this information
- Updated to Firebase SDK 4.6.0 for iOS. Make sure you are updating the frameworks and resources based on this information
- (Core) You need to regenerate the core ANE using the ane generator software V6.0.0 and you need to update all the other Firebase children that you are using in your project.
- (Core) Remove the following receiver from your manifest:
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false"/>
- (Core) The
projectID
property from theFirebaseConfig
class is now deprecated and you no longer can set it manually. This property will be set automatically from now on and you can see its value with the following getter:project_id
. - (Analytics) Added new method
resetAnalyticsData()
which works on the Android side only. - (Auth) Added
FirebaseUser.metadata
. - (Auth) Added
ActionCodeSettings
to sendPasswordResetEmail and sendEmailVerification - (Dynamic-Links) You no longer have to set
Firebase.getConfig().projectID
. This will happen automatically from now on. However, you still need to setFirebase.getConfig().webApiKey
manually. - Firestore is now added and you can start using it. Start by reading the wiki on how to initialize Firestore.
Sep 03, 2017 - V5.1.1
- (Core) Fixed issue 148. The core ANE must be regenerated with the new ane generator V5.1.1.
Aug 21, 2017 - V5.1.0
- (Core) the core ANE must be regenerated with the new ane generator V5.1.0.
- (Core) Added API for managing FirebaseInstanceId. You can now manualy delete and regenerate new iid ID and tokens.
- (Core) You need to add the following service to your manifest right after the
<provider ....
tag.
<service
android:name="com.myflashlab.firebase.core.MyFirebaseInstanceIdService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
Jul 19, 2017 - V5.0.0
- Updated to Firebase SDK 11.0.2 for Android. Make sure to update all your dependency files based on this information
- Updated to Firebase SDK 4.0.3 for iOS. Make sure you are updating the frameworks based on this information
- From now on, sample files are in IntelliJ IDE.
- (Core) You need to regenerate the core ANE using the ane generator software V5.0.0 and you need to update all the other Firebase children that you are using in your project.
- (Core) Remove the following from your manifest:
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
- (Analytics) The following service must be added to the manifest:
<service
android:name="com.google.android.gms.measurement.AppMeasurementJobService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:enabled="true"
android:exported="false"/>
- (Auth) Corrected miss-spelling described at issue https://github.com/myflashlab/Firebase-ANE/issues/42
- (Auth)
Auth.RESULT_TOO_MANY_REQUESTS
introduced. - (Auth) Listener
AuthEvents.ID_TOKEN_CHANGED
introduced. Listen to this even just like how you used to listen toAuthEvents.AUTH_STATE_CHANGED
- (Auth) Added support for Phone verification and sign in.
Auth.verifyPhoneNumber()
, Check Wiki to know how you can use this feature. - (Auth) The new Phone verification feature on iOS will run only if you have setup push-notification on your app. To know how to do that, read the setup information for FCM. If FCM is already added to your app, you're just good to go.
- (Crash)
Crash.crashCollectionEnabled
introduced - (DynamicLinks) You need to add the follwoing dependency to your manifest:
<extensionID>com.myflashlab.air.extensions.dependency.firebase.dynamicLinks</extensionID>
Mar 07, 2017 - V4.0.0
- Updated to Firebase SDK 10.2.0 for Android. Make sure to update all your dependency files based on this information
- Updated to Firebase SDK 3.13.0 for iOS. Make sure you are updating the frameworks based on this information
- firebaseInvites.ane has been added to the collection and it is highly dependent on on DynamicLinks ANE. In simple terms, if you wish to use the Firebase Invites SDK, you need to first add Firebase DynamicLinks to your app.
- (Core) You need to regenerate the core ANE using the ane generator software V4.0.0 and you need to update all the other Firebase children that you are using in your project.
- (Core) setLoggerLevel has been introduced and logLevel is now deprecated.
- (Core) Prior to this updated, other ANE dependencies were not required for iOS builds but from now on, you need to add
overrideAir.ane
even if you are building for iOS only. Just make sure you are reading this information very carefully. - (Auth) Added signInWithEmail
- (Auth) Added signInWithCustomToken
- (Auth) Added confirmPasswordResetWithCode
- (Auth) Added checkActionCode
- (Auth) Added verifyPasswordResetCode
- (Auth) Added applyActionCode
- (Auth) fixed issue 84
- (Analytics) Firebase team fixed issue 34 and we made sure it is also working on the ANE side.
- (Analytics) Added getAppInstanceID
- (DB) fixed issue 65
- (DB) fixed setValue and updateChilderen methods so they are now correctly removing values at targetted references if you are sending an empty String
""
at those references. - (FCM) You can now use the Resource Manager Software to add custom icons for notifications on the Android side. iOS shows app icon only. Firebase does not support this
- (FCM) You can create custom .caf files for iOS notifications to play custom sounds when a notification arrives.
- (FCM) known issue: custom sounds for Android must be placed in the res/raw folder using the Resource Manager Software but unfortunately this is not working because it seems like AIR is somehow compressing the files inside the raw folder. We will bring this issue to Adobe's attention so maybe they can fix this problem.
- Minor bug fixes on the ANE side.
- With upgrading to the latest Firebase SDK, a lot of native bugs are also fixed. You can learn about them by checking the official native Firebase release notes.
Jan 14, 2017 - V3.0.0
- Firebase Core ANE needs the
appinvite
dependency also from now on. - You will need AIR SDK 24 or higher to compile Firebase ANEs. Older SDKs are just too old to support Firebase from mow on.
- firebaseDynamicLinks.ane has been added and works on both Android and iOS. To make sure it works correctly, you need to initialize dynamicLinks as soon as possible in your app, right after you initialized the Core Firebase ANE.
Firebase.init(true);
FirebaseConfig
now has two getter/setter properties (projectID
andwebApiKey
) which can be used for accessing dynamicLinks REST API.- Firebase.init accepts a boolean which is set to
false
by default. If set totrue
, the ANE will be prepared to use DynamicLinks. FirebaseEvents
has been introduced which notifies you when GoogleApiClient is connected or disconnected. You may find these events helpful only on the Android side when working with DynamicLinks. These events will not be dispatched at all when you're running on iOS.- If you are going to add DynamicLinks to your project, read the Wiki and make sure you are generating new provision files for iOS. Your old provisions will not work with DynamicLinks.
Nov 27, 2016 - V2.0.0
- Updated to Firebase SDK 10.0.0 for Android. Make sure to update all your dependency files based on this information
- Updated to Firebase SDK 3.10.0 for iOS. Make sure you are updating the frameworks based on this information
- All Firebase ANEs are now optimized for AIR 24
- Minimum iOS version to support the Firebase ANEs will be iOS 8.0+ from now on
- (Auth) Added sendEmailVerification method
- (Auth) Added isEmailVerified property
- (Auth) Added fetchProvidersForEmail method
- (Crash) You no longer need to add services to the manifest Android side.
- Minor bug fixes on the ANE side.
- With upgrading to the latest Firebase SDK, a lot of native bugs are also fixed. You can learn about them by checking the official native Firebase release notes.
Oct 19, 2016
- Added FCM
Oct 05, 2016
- Added Analytics
Oct 04, 2016
- Added FCM beta
Sep 25, 2016 - V1.2.0
- Updated to Firebase SDK 9.6.1 for Android. Make sure to update all your dependency files also.
- Updated to Firebase SDK 3.6.0 for iOS. Make sure you are updating the frameworks too.
- (DB) Added Child and single events requested on issue #15
- (DB) Fixed Query EndAt method on iOS reported on issue #16
- (DB) Added
DBServerValue
class requested on issue #10 - (Auth) Added signInAnonymously. Simply pass
null
to the signIn() method. issue #8 - The
checkDependencies
method is now deprecated in all Firebase ANEs. instead, you should use the Inspector ANE if you wish to check the availablity of dependencies.
Sep 13, 2016
- Added Crash
Sep 06, 2016
- Added Storage
Aug 10, 2016 - V1.1.0
- Updated to Firebase SDK 9.4.0 for Android. Make sure to update all your dependency files also.
- Updated to Firebase SDK 3.4.0 for iOS. Make sure you are updating the Frameworks also.
- minor bug fixes
Jul 25, 2016
- Added Remote config and Authentication
Jul 21, 2016
- Realtime database and the core are ready for beta testing
Jul 05, 2016 - V1.0.0
- beginning of the journey!