Skip to content

Latest commit

 

History

History
799 lines (689 loc) · 60 KB

CHANGELOG.md

File metadata and controls

799 lines (689 loc) · 60 KB

Version 18.0.4

  • bugfix: remove unused cordova-ios import that breaks projects without ios platform
    • Merged from PR #912

Version 18.0.3

  • (ios) bugfix: fix invalid cordova hook interface use

Version 18.0.2

  • bugfix: only apply new logic for cordova-ios@8 if platform is ios

Version 18.0.1

  • feat(ios): prepare for cordova-ios 8 support - corrected app name
    • Merged from PR #896
  • (ios) Explicitly allow 8.0.0-beta.1 in cordova-ios version requirements as >=5 does not allow it
  • (ios) Gracefully handle missing Podfile when running hook scripts
  • (ios) Ensure plist files exist before attempting to access their contents. Gracefully fail if they are missing.
  • (ios) Gracefully fail if Google App ID is not found in Google plist
  • (ios) fix: ensure IOS_FIREBASE_SDK_VERSION is applied to pre-built Firestore pod version if IOS_USE_PRECOMPILED_FIRESTORE_POD=true
  • (ios) Update pinned Firebase SDK versions to v11.4.0
  • (android) Update pinned Firebase SDK component versions to BoM v33.6.1 (23 October 2024)

Version 18.0.0

  • (iOS & Android) BREAKING change: Notification payloads received while the app is in the background or inactive are now queued by default, instead of delivered immediately to the application.
    • This is to ensure the application is ready to receive the notification payload when it is delivered.
    • This DOES NOT affect notifications that are tapped on by the user, which are always delivered immediately.
    • Merged from PR #902
  • (ios) fix: explicitly specify FirebaseCoreExtension version in Podfile so it aligns with other component versions
  • (ios) Document and check if SKIP_FIREBASE_FIRESTORE_SWIFT environment variable is set if plugin variable IOS_USE_PRECOMPILED_FIRESTORE_POD is set to true
  • (iOS) Document deprecation of cli_build branch

Version 17.0.0

  • (ios) BREAKING: Update pinned Firebase SDK versions to v11.2.0 and updated related dependencies: GoogleSignIn v7.0.0, GoogleTagManager v8.0.0
    • Firebase iOS SDK v11 supports iOS 13+
      • BREAKING: drops support for iOS 12 which was supported by Firebase iOS SDK v10
    • Resolves #892
  • (ios) Update to use Google Sign-In SDK v7 signatures.
  • (ios) bugfix: gracefully handle missing iOS deployment target in Podfile.
  • (ios) Add support for IOS_FIREBASE_IN_APP_MESSAGING_VERSION plugin variable to enable specifying a different version of the InappMessaging SDK component from the other Firebase iOS SDK components
  • (Android) update: Pin latest Firebase SDK component versions to Bom v33.3.0 as of 12 Sep 2024
  • fix: Queue global JS executions if plugin is not yet initialized to prevent calling functions on the plugin JS API before Cordova has loaded the plugin JS namespace.

Version 16.5.0

  • (Android) update: Pin latest Firebase SDK component versions as of 11 Apr 2024
  • (iOS) update: Pin latest Firebase SDK components v10.24.0 as of 9 Apr 2024
  • feat: Add unlinkUserWithProvider()
  • (android) fix: support minSDK 24+ - remove trailing comma
    • Merged from PR #860
  • doc: Add information to enable the Analytics debug_mode
    • Merged from PR #820
  • Add Consent Mode v2
    • Merged from PR #878
  • (ios) docs: Update IOS_NOTIFICATION_SERVICE.md
    • Merged from PR #814

Version 16.4.0

  • (doc) Add note about xmlns:android attribute for config.xml Merged from PR #840
  • (doc) Clarify how to set plugin variables
  • (iOS) fix matching of pod versions so IOS_FIREBASE_SDK_VERSION variable is applied to Podfile.
  • (iOS) Support optional patch version when specifying iOS deployment target version.
  • (Android) bugfix: when grantPermission is called on Android 12 or below, ensure success callback is invoked.
  • (iOS & Android) feat: Implement authenticateUserWithOAuth() to authenticate with OAuth providers
  • (ios) Return idToken in credential result when authentication with Apple is successful.
    • Partially resolves #857

Version 16.3.0

  • (Android) apply FIREBASE_ANALYTICS_WITHOUT_ADS plugin variable to disable AD ID data collection and remove AD ID permission from manifest
  • (iOS) build: apply FIREBASE_ANALYTICS_WITHOUT_ADS and IOS_ON_DEVICE_CONVERSION_ANALYTICS plugin variables to plugin.xml using npm post_install script
  • (doc) Explain additional step required for post-install plugin variables
  • (iOS) feat: Add initiateOnDeviceConversionMeasurement() to support on-device conversion measurement
  • (iOS) fix: add FirebaseAnalytics pod
    • Merged from PR #848

Version 16.2.0

  • (iOS) add npm post_install script to apply IOS_USE_PRECOMPILED_FIRESTORE_POD plugin variable to plugin.xml before the plugin config is loaded by Cordova
  • (iOS) use product pods for firebase packages
    • Merged from PR #811
  • (iOS) Fix plugin imports using product-level CocoaPods
    • Merged from PR #812
  • (Android) Fix ambiguity between bigLargeIcon(Bitmap) and bigLargeIcon(Icon) on API 34
    • Merged from PR #836
  • (build) Gracefully handle error if read/write package.json fails.
  • feat: Add registerAuthIdTokenChangeListener to monitor changes in auth ID token.
  • (iOS) update: Pin latest Firebase SDK component version (v10.17.0) as of 30 Oct 2023
  • (Android) update: Pin latest Firebase SDK component versions as of 30 Oct 2023

Version 16.1.0

  • (iOS) feat: add support for IOS_FCM_ENABLED variable to allow disabling FCM functionality on iOS
    • Merged from PR #797
  • (types) feat: add support for lastUpdate and created in Firestore operations
    • Merged from PR #793
  • (iOS) doc: Tutorial to make the necessary configurations to send images in notifications
    • Merged from PR #798
  • (iOS) Fix foreground notifications not being displayed after calling grantPermission when permissions haven't been previously granted
    • Merged from PR #800
  • doc: add server side verification documentation to authenticateUserWithGoogle()
    • Merged from PR #805
  • (iOS) build: Use precompiled FirebaseFirestore on first pod install
    • Merged from PR #752
  • (iOS) feat: Add registerApplicationDidBecomeActiveListener() and registerApplicationDidEnterBackgroundListener() methods to expose native iOS app delegate methods
  • (Android) build: Add support for cordova-android@12 - use cordova-android config variable version
    • Merged from PR #807
  • (Android) update: Pin latest Firebase SDK component versions as of 01 May 2023
  • (iOS) update: Pin latest Firebase SDK component version (v10.10.0) as of 23 May 2023

Version 16.0.0

  • (iOS & Android) BREAKING CHANGE: Changed signature of verifyPhoneNumber() to pass optional arguments as an object.
  • (iOS & Android) feat: Add support for multi-factor authentication
    • Added enrollSecondAuthFactor(), verifySecondAuthFactor(), listEnrolledSecondAuthFactors(), unenrollSecondAuthFactor(), verifyBeforeUpdateEmail()
    • Resolves #714
  • (iOS & Android) feat: Add authenticateUserWithFacebook()

Version 15.0.0

  • (Android) Update pinned Firebase SDK component versions to BOM v31.1.0 - November 17, 2022
  • (iOS) Update pinned version of Firebase SDK to v10.2.0 - November 15, 2022
    • BREAKING CHANGE: Minimum supported iOS version is now v11.0 (with Firebase SDK v9 it was v10.0) - see here
    • Update pinned versions of Google Sign In and Google Tag Manager libraries to latest to align with Firebase SDK v10
  • (iOS) fix: Fix CLI builds with Xcode 14 and Cordova CLI.
  • (iOS) feat: Add IOS_GOOGLE_SIGNIN_VERSION AND IOS_GOOGLE_TAG_MANAGER_VERSION plugin vars to enable overriding default pinned versions at plugin install time.
  • (iOS) feat: Add the authorization code to the credential object returned after authentication via Sign in with Apple
    • Merged from PR #761
  • (Android) fix: Notification opening app for Android 12
  • (Android) feat: Add support for Android push notification localization in foreground notifications
    • Merged from PR #772
  • (Android) feat: Handle checking/requesting POST_NOTIFICATIONS runtime permission on Android 13+.

Version 14.2.1

  • (iOS) bugfix: remove openURL delegate that was erroneously re-added by merge error.

Version 14.2.0

  • (Android) bugfix: Fix no notifications on Android 12 and above
  • (iOS & Android) feat: Add support to optionally specify timestamp when updating documents in a Firestore collection
    • Merged from PR #743
  • (iOS) bugfix: Use standard pod for Firestore by default but add IOS_USE_PRECOMPILED_FIRESTORE_POD plugin variable to switch to using pre-built version.
  • (iOS) feat: add support for IOS_FIREBASE_SDK_VERSION plugin variable to override the Firebase iOS SDK versions specified in plugin.xml

Version 14.1.0

  • (Doc) bugfix: Fix markdown issue caused by unescaped HTML tags.
  • (Android) bugfix: Fix null pointer exception when missing notification image
    • Merged from PR #709
  • (iOS) bugfix: Cordova-compliant external URL handling
    • Merged from PR #731
  • (iOS & Android) feat: Add support for getClaims
    • Merged from PR #723
  • (Types) bugfix: Correctly declare FirebasePlugin as global
  • (Android) chore: bump pinned Firebase SDK component versions to BOM 30.0.2 (May 19, 2022)
  • (iOS) chore: Update Firebase Apple SDK to Version 9.1.0 - May 24, 2022
    • Major version increase from v8.1.0 but no breaking changes directly affect this plugin
  • (iOS) bugfix: Ensure new FCM token is issued after calling unregister() when autoinit is enabled.
  • (iOS & Android) feat: Add support for FIREBASE_FCM_AUTOINIT_ENABLED plugin variable to set FCM autoinit on app startup at configuration time

Version 14.0.0

  • (iOS) chore: Minor version update to Firebase iOS SDK to latest (Version 8.11.0 - January 18, 2022)
    • BREAKING CHANGE: Requires Cocoapods v1.11.2+
  • (Android) chore: Update pinned Firebase Android SDK dependencies to latest ((January 25, 2022)[https://developers.google.com/android/guides/releases#january_25_2022])
  • (iOS) bugfix: Update to GoogleSignIn v6 and update plugin for breaking API changes.
  • (Android) bugfix: Fix an error getting the providerId that could cause getCurrentUser() to fail.
    • Merged from PR #706
  • (iOS & Android) feat: Include actionCodeSettings in the sendUserEmailVerification() function
  • (iOS) feat: Implement authorization request for critical alerts
  • (Types) bugfix: Fix return type for didCrashOnPreviousExecution
    • Merged from PR #692
  • (Android) bugfix: Use OAuthProvider when available during linkUserWithCredential()
    • Merged from PR #687
  • (Types) bugfix: Add missing type for authenticateUserWithEmailAndPassword()
    • Merged from PR #686
  • (iOS & Android) feat: Support Firebase Authentication emulator
    • Merged from PR #685
  • (Android) feat: Support html attributes in body notifications
    • Merged from PR #668
  • (Android) feat: Improved notification image support
    • Merged from PR #667
  • (Doc) bugfix: Fix setUserProperty parameters in README.md
    • Merged from PR #638
  • (Android) bugfix: Specify version of GRPC OKHTTP and enable version override via plugin variable and bump Android Gradle build tool versions.
  • (Android) bugfix: add android:exported element
    • Merged from PR #702
  • (iOS) bugfix: Return user's full name if present in Apple sign in response.

Version 13.0.1

  • (iOS) Fix onTokenRefresh to return FCM token (not installation auth token).
  • (Android): Increment pinned version of Crashlytics Gradle plugin to v2.7.1 to resolve build issues with Gradle v7.
  • (iOS) Bump pinned Firebase SDK components to v8.4.0 - July 20, 2021
  • (Android): Update pinned Firebase Android SDK versions from BoM v28.1.0 to (v28.2.1 - July 09, 2021)

Version 13.0.0

  • (iOS) BREAKING CHANGE: Major version update to Firebase iOS SDK from v7 to v8 (Version 8.1.1 - June 11, 2021)
    • Remove/replace references to previously-deprecated Firebase IID SDK component which is removed in SDK v8 with Firebase Installations SDK
  • (Android) BREAKING CHANGE: Major version update to Firebase Android BOM from v26 to v28 (v28.1.0 - June 03, 2021)
    • Remove/replace references to previously-deprecated Firebase IID SDK component which is removed in SDK BOM v28 with Firebase Installations SDK
    • Add explicit dependency on deprecated firebase-iid because latest version firebase-functions:20.0.0 depends on an older version and so causes duplicate class conflicts with latest firebase-messaging:22.0.0
  • (Android) doc: Add note regarding creating new notification channels for each new sound.
  • doc: Add note regarding allowed values for logEvent
    • Merged from PR #619.
  • (Android) bugfix: Fix sound configuration per channel
    • Merged from PR #625.
  • (iOS & Android) feature(auth): add idToken on signIn w/ Google response
    • Merged from PR #633.
  • (iOS) feature: support for AppNotificationSettingsButton
    • Merged from PR #577.
  • (iOS) bugfix: Check content-available key is present before casting it.
  • (iOS & Android) bugfix: Convert references to their path strings when fetching data from Firestore to avoid crashes due to circular references.

Version 12.1.0

  • (iOS & Android) feature: Add support for Firebase Installations SDK.
  • (iOS) feature: Implement Firebase Functions
    • Relates to PR #509.

Version 12.0.0

  • (iOS) BREAKING CHANGE: Major version update to Firebase iOS SDK from v6 to v7 (v7.8.1 - 12 March 2021)
    • Requires [email protected] (previously [email protected])
    • Removes developerModeEnabled property from getInfo() Remote Config response as this was removed in the latest Firebase SDK
    • Removes direct channel support for Firebase Messaging as no longer supported by Firebase iOS SDK v7.
    • Resolves #561.
  • (Android) BREAKING CHANGE: Major version update to Firebase Android BOM from v25 to v26 (v26.7.0 - 11 March 2021)
    • Removes developerModeEnabled property from getInfo() Remote Config response as this was removed in the latest Firebase SDK
  • (iOS) Bugfix: Fix conflict with cordova-plugin-local-notifications to enable both remote notifications via this plugin and local notifications via that plugin to work simultaneously in the same app.
  • (Android) Feature: add support for calling Firebase Functions
    • Merged from PR #509.
  • (iOS) Bugfix: Add base class to FirebasePluginMessageReceiverManager to prevent Xcode build error
    • Merged from PR #579.
  • (Android) Bugfix: Fix GSON serialization of NaN values in Firestore
    • Merged from PR #584.
  • (Android) Bugfix: Fix serialization of JSON arrays and objects in logEvent() for Analytics
    • Merged from PR #598.
  • (iOS) Bugfix: Fix reading of all Remote Config keys in getAll() by falling back if default source is empty.
  • (iOS) Bugfix: Register notification delegate during didFinishLaunching to ensure notifications are ready when app starts.
  • (iOS) Bugfix: Make interaction with firestoreListeners thread-safe.
  • (iOS) Bugfix: Ensure traces array is always defined before referencing it.
  • (iOS) Bugfix: Gracefully handle sending empty error message to logError.
  • (iOS) Bugfix: Gracefully handle errors in fetching token data when returning user info.
  • (Android) Bugfix: Gracefully handle errors when attempting to retrieve ID token when fetching current user info.

Version 11.0.3

  • (Android) Make Firebase Performance Monitoring Gradle plugin optional (disabled by default) via ANDROID_FIREBASE_PERFORMANCE_MONITORING plugin variable due to increased build times/memory usage when it's included.
  • (Android) Add defensive code in handleExceptionWithContext() to prevent app crashes.
  • (iOS) Fix setConfigSettings implementation.
    • Merged from PR #534.

Version 11.0.2

  • (iOS) Check if file contents for pn-actions.json exists before attempting to use it.
    • Resolves #512.
    • Bug introduced by PR #482.
  • (Android) Add the Firebase Performance Monitoring Gradle plugin to monitor network traffic.
  • (Feature): Add setLanguageCode method for Firebase Auth
    • Merged from PR #527.
  • (iOS): Bump podspec versions for Firebase iOS SDK to v6.33.0.
  • (Android): Bump pinned Firebase SDK dependencies to latest release versions.
  • (Types) Export interfaces in types definition.

Version 11.0.1

  • (iOS) Set the Sign In with Apple capability based on the IOS_ENABLE_APPLE_SIGNIN plugin variable.

Version 11.0.0

  • (Android & iOS): Bump pinned Firebase SDK component versions to latest releases.
  • Added support for didCrashOnPreviousExecution() and setCrashlyticsCustomKey()
    • Merged from PR #492.
  • (Doc) Clarify requirements for parameters passed to logEvent().
  • Implement Remote Config v2 API
    • Add new methods: fetchAndActivate(), resetRemoteConfig(), getAll()
    • BREAKING CHANGE: Change API signature and implementations for setConfigSettings() and setDefaults() on Android, and implement for iOS.
    • Resolves #155.
  • (Android) BREAKING CHANGE: Remove dependency on cordova-plugin-androidx and cordova-plugin-androidx-adapter
  • Add support for Firestore real-time listeners: listenToDocumentInFirestoreCollection(), listenToFirestoreCollection(), removeFirestoreListener()
  • (Types) Update typedef for recent API changes
  • (iOS) Set Sign In with Apple entitlement automatically.
  • Add authenticateUserWithEmailAndPassword()
  • (iOS) Remove superfluous braces from FirebasePluginMessageReceiver.h
  • Support optional valueType parameter when filtering Firestore collections.
  • (iOS) Add support for foreground and destructive UNNotificationActionOptions
    • Cherrypicked from PR #487

Version 10.2.0

  • (iOS) Fix crashes on receiving push notifications on iOS due to delegate chaining.
    • Resolves #385.
    • Reverts commit 4e9a0f4a1fd4ceb871af40629e1ddf146f287ca8 "co-existence with cordova-plugin-local-notification on iOS"
    • Since upon testing, this plugin does not work with cordova-plugin-local-notification present in the same project even with this code in place.
    • And the conflict between the 2 plugins will need to be addressed separately under #230.
  • (iOS) Add support for iOS actionable notifications
    • Merged from PR #482.
  • (Android): Handle task outcomes where task is not successful but exception is null.
  • (Android) Add missing Inapp Messaging component.
  • (iOS): Bump minimum required Cocoapods version to v1.9.1 due to requirement by Firestore v6.28.1
  • (Android) (Bug fix) Fix all cases where task outcomes are being incorrectly handled.
  • (iOS) Update remote config to use activateWithCompletion instead of deprecated activateWithCompletionHandler for activating remote config.
  • (iOS) (Bug fix) Use regex to extract cocoapods from stdout when verifying cocoapods version during plugin install.
  • (Android, iOS): Support custom locations for Firebase config files

Version 10.1.2

  • (iOS): Bump Firebase SDK versions to v6.28.1 to resolve build freeze issue.

Version 10.1.1

Version 10.1.0

  • (iOS) Use precompiled pod for Firestore to reduce build times.
    • BREAKING CHANGE: Requires cocoapods>=1.9 (previously cocoapods>=1.8).
    • Adds hook script to check local cocoapods version during plugin install.
    • Based on PR #440.
    • Resolves #407.
  • (Android) Fixed regression bug related to default Crashlytics permission.
  • (iOS) Bump pinned Firebase SDK versions to latest 6.27.0
  • (Android): Bump Firebase SDK versions to latest for Analytics, Cloud Messaging & Inapp Messaging.

Version 10.0.0

  • BREAKING CHANGE: (Android, iOS) Migrate from Fabric Crashlytics SDK to Firebase Crashlytics SDK. ** Based on this commit in PR #432. ** Resolves #335. ** Removes isCrashlyticsCollectionCurrentlyEnabled() as it's no longer necessary to manually init Crashlytics and a runtime method exists to enable/disable it. ** For more info see the Firebase Crashlytics SDK upgrade documentation.
  • (iOS) Fix exception raised if another plugin as already configured Firebase
    • Merged from PR #419.
  • (iOS) Handle case where LD_RUNPATH_SEARCH_PATHS is an array. Resolves #344.
  • (Android, iOS): Avoid collection state getting out of sync & remove restriction to override config defaults.
    • Merged from PR #423.
  • (iOS) Fix escaping already escaped json.
    • Merged from PR #430.
    • Further resolves #401.
  • (Android): Fix parsing of existing colors.xml when it contains multiple existing <color> to prevent overwriting the existing values.
  • (Android, iOS): Return success/failure result when subscribing/unsubscribing from topics.

Version 9.1.2

  • (Android) Fix retrieval of auth provider ID - see here for more info
  • (iOS) Align retrieval of auth provider ID with Android.
  • (Typing): correct return type of a method
    • Merged from PR #390.
  • (Documentation) Update guidance and requirements when opening issues
  • (iOS): Fix escaping of line endings in multi-line log messages being sent from native iOS implementation to JS console.
  • (iOS): Set shouldEstablishDirectChannel via a plugin variable which defaults to false. Resolves #406.
  • Bump androidx plugin version dependencies. Resolves #418.

Version 9.1.1

Version 9.1.0

  • (Android & iOS) BREAKING CHANGE: Add support for filters to fetchDocumentInFirestoreCollection()
    • BREAKING CHANGE to function signature.
    • Merged from PR #367.

Version 9.0.3

  • (Android & iOS) Add reloadCurrentUser()
  • (Doc) createChannel() suggestion for multiple sounds
    • Merged from PR #225.
  • (iOS) Implement getInfo() for iOS.
    • Merged from PR #363.
  • (Android & iOS) Add signInUserWithCustomToken() AND signInUserAnonymously() auth methods
    • Merged from PR #359.

Version 9.0.2

  • (Android): Don't display app icon for large notification icon on Android. Resolves #343.
  • (Android & iOS) Sign out of Google signing out of Firebase. Resolves #353.
  • (Android & iOS) Add documentExistsInFirestoreCollection() and fix resolution of fetchDocumentInFirestoreCollection().

Version 9.0.1

  • Re-add Firebase Inapp Messaging SDK component to master branch.
  • Document cli_build branch. See #326.

Version 9.0.0

  • BREAKING CHANGE: Change method signature of setCrashlyticsCollectionEnabled() to (enabled, success, error) (from ()) to allow enabling/disabling of Crashlytics at runtime and align it with setPerformanceCollectionEnabled() and setAnalyticsCollectionEnabled()
  • Add isCrashlyticsCollectionEnabled() and isCrashlyticsCollectionCurrentlyEnabled() to respectively check if persistent Crashlytics setting is enabled and if Crashlytics is enabling during the current app session.
  • Add isAnalyticsCollectionEnabled() and isPerformanceCollectionEnabled() to check if persistent settings are enabled.
  • BREAKING CHANGE: Remove Firebase Inapp Messaging SDK component due to causing Cordova CLI build issues.
  • (iOS) Override CDVPlugin class abstract method handleOpenURL instead of implementing app delegate method application:openURL:options to prevent conflicts with other plugins.
  • (Android) Fix parsing of existing colors.xml when it only contains a single <color> to prevent overwriting the existing value.

Version 8.1.1

  • (Doc) Document custom FCM message handling.
  • (Doc) Rationalise heading levels.
  • (iOS) Implement message receiver mechanism (equivalent to existing Android mechanism) to enable custom handling of specific message types.
  • (Android) Extend custom receiver to handle payload obtained from system notification message bundle received while in background/not running.
  • (Android) Ignore invocation of auth state change listener at app start (same as on iOS) to prevent error due to race condition with plugin initialisation.

Version 8.1.0

  • Add support for Firebase inapp messaging
    • Merged from PR #312.
  • Add support for Firestore realtime database. Resolves #190.
  • (Doc) Add note regarding persistence of data collection settings. Resolves #315.
  • (iOS) Added missing Google Tag Manager Pod for iOS.
    • Merged from PR #318.
  • (iOS) Don't set FirebaseScreenReportEnabled=false in app list when FIREBASE_ANALYTICS_COLLECTION_ENABLE=false. Resolves #317.
  • (Android) Disable strict version check in Google Services plugin for Gradle as it causes erroneous build failures.

Version 8.0.1

  • Add registerAuthStateChangeListener() to support invocation of a callback function on the Firebase Authentication state changing. Resolves #311.
  • (Android) Bump Firebase SDK dependency versions to latest releases. Resolves #279.
  • (iOS) Bump podspec versions for Firebase SDK components to latest release (v6.17.0)

Version 8.0.0

  • BREAKING CHANGE: Rework verifyPhoneNumber() to preserve and reference the native credentials object (rather than attempting to extract and parse its properties to JS). Fixes #176.
  • Add other Firebase Authentication methods: Google Sign In, Sign In with Apple, email/password sign in, and authentication utility methods. Partially resolves #208.
  • (Android) Add check google-services plugin does not already exist. Fixes #282.
  • (iOS) Update pinned Firebase SDK versions to latest v6.13.0. Resolves #232.

Version 7.0.2

  • (Android) Fix error caused by local variable
    • Merged from PR #229.
  • (iOS Hook) Fix retrieving Xcode project path
    • Merged from PR #234.
  • (Android) Check google-services plugin doesn't already exist in Gradle script
    • Merged from PR #281.

Version 7.0.1

  • (Android) Replace references to cordovaActivity with applicationContext when app is not running and therefore cordovaActivity doesn't exist. Resolves #165.
  • Fix .forEach is not a function. Merged from PR #219. Resolves #213.
  • (Android) Parse this plugin's plugin.xml to extract default values for plugin variables not explicitly set at plugin install time. Fixes #218.
  • (iOS) Fix after_prepare hook to run on multiple platforms so if they are added in one operation using cordova prepare, both platforms are processed. Fixes #221.
  • (Typedef) Update the typedef for recent plugin API changes.

Version 7.0.0

  • (iOS) Update Firebase SDK to v6.11.0 released 22 Oct 2019
  • (Android) Update pinned Firebase SDK versions to latest as of 25 Oct 2019 Resolves #207
  • (Doc) Document parameter types in API functions. Resolves #140
  • (Doc) fix onMessageReceived() code sample. Merged from PR #142.
  • (Doc) Example sound name for custom Android notification sound. Resolves #160
  • (Feat): add Typescript declaration Merged from PR #166.
  • (Doc) Fix createChannel() examples. Merged from PR #167.
  • (Android) Expose description notification channel field. Merged from PR #168.
  • (iOS) Update CocoaPods spec url to new CDN. Merged from PR #173.
  • (Doc) Fix code example for default android icon. Merged from PR #174.
  • (iOS) Support iOS 13 APNS format token change. Merged from PR #177.
  • (Hook) Remove check for presence of platform in config.xml Merged from PR #185.
  • (Feat) Expose Firebase Messaging autoinit API functions to allow enabling/disabling/checking of autoinit.
    • If disabled and unregister() is called, a new token will not be automatically allocated.
    • Resolves #147.
  • (iOS) Fix logEvent() so it doesn't generated warning message in console. Fixes #154.
  • (iOS) Handle notification messages that contain "content-available":1 which wakes up the app while in the background to deliver the message payload immediately when the message arrives (without requiring user interaction by tapping the system notification). Fixes #158.
  • (Android)(Do) Clarify Android custom notification icons example. Resolves #183.
  • (Doc) Add example of using stacktrace.js with logError(). Clarifies #118.
  • (Doc) Add link to cordova-plugin-firebasex-ionic3-test Ionic 3 example project
  • Add signInWithCredential() to sign user into Firebase account and linkUserWithCredential() to link user account with credentials obtained via verifyPhoneNumber().
  • (Android) BREAKING CHANGE Rework verifyPhoneNumber()
    • Remove redundant verified in returned credentials object.
    • Support mocking of instant verification for verifyPhoneNumber() on Android for integration testing.
  • (iOS) BREAKING CHANGE Rework verifyPhoneNumber()
    • Return the same credential object structure as Android.
  • (iOS) Add SETUP_RECAPTCHA_VERIFICATION plugin variable to automatically set up reCAPTURE verification for phone auth.
  • (Doc) Add section to explicitly document all supported plugin variables.
  • (iOS) Add onApnsTokenReceived() to register a callback function to be invoked when the APNS token is allocated. Resolves #201.
  • (Android) Tweak default empty values when sending stacktrace using logError()
  • (Doc) Better example of using logError() to track unhandled JS exceptions vs logging a non-fatal logical error.
  • (iOS) Modify logError() to send stacktrace.js output as an actual stacktrace instead of custom keys. Resolves #118.
  • (Hook) Fix parsing of config.xml to extract app name. Fixes #139.
  • (Android) Ensure functions which return a boolean result return an actual boolean type rather than a binary integer. Fixes #153.
  • (Hook) Rework hook scripts to:
    • be fully synchronous to eliminate race conditions (remove q dependency)
    • use xml-js (instead of xml2js) to convert XML>JSON and JSON>XML
    • (Android) handle existing colors.xml. Resolves #132.

Version 6.1.0

  • (iOS) Add getAPNSToken() plugin API method to get the APNS token on iOS. Derived from merging PR #100.
  • Merge PR #103 - fix for app name containing an ampersand.
  • Merge PR #115 - fix for short attribute in app name.
  • Merge PR #121 - fixes missing resolution of promise in after_prepare hook which caused other plugins to not run their after_prepare script (a bug introduced in v6.0.7)
  • (Android) Merge PR #64 - replace Android hooks scripts to configure Gradle with actual Gradle configuration.
  • (iOS) Add missing tap property for notification messages received while app is running in background.
  • (iOS) Fix issues causing foreground notifications not to display on first run. Fixes #109.
  • (iOS) Update string format when subscribing/unsubscribing topics. Resolves #110.
  • Support disabling of data collection (analytics/performance/crashlytics) at app startup and manual enabling of these at runtime.
  • Remove Android implementation of getBadgeNumber()/setBadgeNumber() as it doesn't work on Android 8+.

Version 6.0.7

  • Merge PR #93: Update Fabric dependencies
  • Port code to apply IOS_STRIP_DEBUG plugin variable to Podfile into this plugin's hook scripts (from cordova-plugin-cocoapod-supportx).

Version 6.0.6

  • Fix parameter type passed to hasPermission success callback for Android. Fixes #83.

Version 6.0.5

  • Fix hasPermission() to return boolean result on Android (same as iOS).
    • Update docs to flag this as a breaking change from cordova-plugin-firebase.
    • Resolves #81.

Version 6.0.4

  • Replace dependency on cordova-lib with xml2js.
  • (iOS) Restore placeholder GoogleService-Info.plist.
    • Partially reverts a9c66746ca3592f0eec217f7701d5835f33b43c5
    • See #74
  • (iOS) Handle and report native logical errors.

Version 6.0.3

  • (iOS) If grantPermission() is called when permission is already granted, return an error (rather than attempting to grant permission again which causes issues).
  • (iOS) Run badge number operations on UI thread (instead of background thread).
  • (iOS) Handle situation where value of sound is not an NSString.
  • (iOS) Add try/catch handlers at all code entry points to handle unexpected exceptions in order to prevent app crashes. Log native exceptions to native and JS consoles.
  • Remove google-services.json and GoogleService-Info.plist placeholders.

Version 6.0.2

  • (Android) Improved exception handling to prevent app crashes due to plugin exceptions. Document caveats of received message payload when notification message is received while app is not running on Android. Further resolves #52.

Version 6.0.1

  • (Android) Expose notification message properties in message object sent to onMessageReceived(). Ensure message is always sent to onMessageReceived(), regardless if it was tapped. Resolves #52.

Version 6.0.0

  • BREAKING CHANGES
    • onMessageReceived() is now called when a message is received (data or notification) AND when a system notification is tapped (whether app is running or not)
    • Resolves #48.
    • The tap parameter passed to onMessageReceived() is only set if a system notification is tapped
      • If the system notification was tapped while the app is running in the foreground, the value will be tap: "foreground"
      • If the system notification was tapped while the app is not running / in the background, the value will be tap: "background"

Version 5.0.0

  • BREAKING CHANGES
    • onNotificationOpen() renamed to onMessageReceived()
    • Changed key names for custom notification properties in FCM data messages to display system notifications in foreground.
    • Message payload is always delivered to onMessageReceived() for both data and notification messages.
    • messageType key indicates type of FCM message: notification or data
    • tap is only set when messageType is notification
    • Explicit dependency on cordova-plugin-androidx-adapter since Android implementation uses AndroidX so is incompatible with Android Support Library.
    • Set remote-notification background mode in native Xcode project for iOS.
    • Reworked plugin documentation.
  • Support customisable display of system notifications while app is in foreground for both notification and data messages (both Android & iOS).
  • Set default color accent and notification channel for FCM notifications.
  • Add support for default and custom notification channels for Android 8+
    • Customise importance, visibility, LED light, badge number, notification sound and vibration pattern
  • Calling logError() on Android now also logs to native logcat (as well as a non-fatal error to remote Crashlytics service).
  • Fix logError() on iOS to log non-fatal error to remote Crashyltics service.
  • Implement stubs for hasPermission() and grantPermission() on Android so they both return true in to the success callback.
  • Rationalise permission check/request on iOS.
  • Remove legacy support for iOS 9 and below.
  • Support overridable default color accent for Android notification icons via ANDROID_ICON_ACCENT plugin variable.

Version 4.0.0

  • BREAKING CHANGE: set min supported versions to cordova@9 and cordova-ios@5.
    • Drop dependency on cordova-plugin-cocoapodsx to install pod dependencies.
    • Instead update plugin.xml to use podspec formatting as required by cordova-ios@5.
    • Remove iOS plugin variables as these are not (currently) supported by cordova-ios@5
    • Resolves #22.

Version 3.0.8

  • [iOS] Add support for stripping debug symbols for libraries included via Cocoapods. Resolves #28.

Version 3.0.7

  • [iOS] Ensure runpath search path contains $(inherited) to avoid build warnings/issues. Resolves #25.

Version 3.0.6

  • Update iOS to Firebase SDK v6.3.0 (from v5.20.2) - major version increment so update source code for breaking changes to API. Resolves #9.
  • Add support for NDK crashlytics on Android. Resolves #17.

Version 3.0.5

  • Bump min version of cordova-plugin-cocoapod-supportx to 1.7.2 which fixes bug when using a plugin variable to specify the ios-min-version in <pods-config>

Version 3.0.4

  • Bump min version of cordova-plugin-cocoapod-supportx to 1.7.1 which supports using a plugin variable to specify the ios-min-version in <pods-config>

Version 3.0.3

  • Implement didReceiveRegistrationToken delegate for iOS. Resolves #16.
  • Document dependency on Cocoapods. Resolves #15.
  • Make min iOS version configurable. Resolves #14.

Version 3.0.2

  • Update legacy Xpath reference to <application> element in AndroidManifest.xml

Version 3.0.1

Version 3.0.0

  • Reapply: Support user-overriding of default Android Gradle & iOS Cocoapods versions using plugin variables.

Version 2.1.2

  • Revert: Support user-overriding of default Android Gradle & iOS Cocoapods versions using plugin variables.
    • Since it's not working on iOS due to Cocoapods plugin dependency.
    • Need to fix that plugin to handle plugin variables then reinstate this change in a major version release.

Version 2.1.1

  • Support user-overriding of default Android Gradle & iOS Cocoapods versions using plugin variables.

Version 2.1.0

  • Update Android source to use AndroidX class names and adds dependency on cordova-plugin-androidx for forward compatibility with future versions of Firebase libraries on Android.
    • Note: if you include other plugins in your project which reference the legacy Android Support Library, you'll still need to include cordova-plugin-androidx-adapter in your project to dynamically patch them.
  • Pins Firebase and Crashlytics Gradle dependencies to latest major version (to prevent build failures due to unexpected changes in subsequent major versions).
  • Set minimum supported versions to cordova@8+, cordova-android@8+, cordova-ios@4+.

Version 2.0.7

  • Merge PR #7: use <pod> instead of deprecated <<framework type="podspec">. Resolves #5.

Version 2.0.6

  • Use Cocoapods to satisfy iOS Firebase SDK (rather than bundling with plugin). See arnesson#972.
  • Add support for logMessage() and sendCrash() functions (ported from cordova-fabric-plugin)
  • Bump version of Crashlytics library on Android to current latest (v2.9.8 - Dec 2018)
  • Bump Firebase SDK versions in iOS PodSpecs to latest version (v5.15.0)
  • Remove redundant build-extras.gradle
  • Set minimum iOS version to 9.0 in podspec
  • Remove unnecessary extra block which can lead to race condition
  • Fixes issues cause by Firebase SDK updates on 5 April 2019 (https://firebase.google.com/support/release-notes/android#update_-_april_05_2019) which removed deprecated API features causing Android build failures. See https://github.com/arnesson/cordov
  • Fix compatibility with cordova@9 CLI
  • Add explicit dependency on cordova-lib to prevent build error on iOS. Fixes #2.

---> FORKED FROM cordova-plugin-firebase AS cordova-plugin-firebasex <---

Version 2.0.5

Bug Fixes

  • #897: Fixed issue with after_prepare hook not copying required files

Version 2.0.4

Bug Fixes

  • #866: Fixed issue with loading .plist file on some iOS devices

Version 2.0.3

Features

  • #874: Added new api setCrashlyticsUserId which allows setting Crashlytics user identifier
  • #861: Updated verifyPhoneNumber api on android to add the following properties to the returned object:
    • code - sms code
    • verified - whether or not the verification was successful

Bug Fixes

  • #869: Replace add/remove hooks with install/uninstall hooks to ensure proper configuration of the plugin
  • #870: Add error handling to fetch api on iOS

Version 2.0.2

Bug Fixes

  • #837: Fixed android build

Version 2.0.1

Bug Fixes

  • #836: Fixed Crashlytics on iOS
  • #830: Fixed initialization of firebase services

Version 2.0.0

Features

  • #796: Update Firebase SDK Version to 5.x

Bug Fixes

  • #822: Can't use initFirebase() on 1.1.3 [Firebase isn't initialized]
  • #827: doc missing: initFirebase call needed before anything
  • #824: Removed initRemoteConfig method

Version 1.1.4 (deprecated)

This version has been deprecated due to complications with PR #784

Version 1.1.3 (deprecated)

This version has been deprecated due to complications with PR #784

Version 1.1.2 (deprecated)

This version has been deprecated due to complications with PR #784

Version 1.1.1 (deprecated)

This version has been deprecated due to complications with PR #784

Version 1.1.0 (deprecated)

This version has been deprecated due to complications with PR #784

Version 1.0.5

To force cordova to use this version, add the following to your project's config.xml:

<plugin name="cordova-plugin-firebase" spec="1.0.5" />

or by running:

cordova plugin add [email protected] --save