All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
15.0.0 (2022-06-20)
-
crashlytics, ios: forward port to firebase-ios-sdk v9 header locations (e5bd716)
-
storage, ios: correct storage metadata update / delete (2dcb079)
-
storage, ios: surface underlying reason for unknown errors if possible (6cd53ea)
-
test(functions, ios)!: disable custom HttpsError testing (a56dc9f)
-
fix(storage, android)!: android now updates customMetadata as a group (d602436)
-
ALL iOS: firebase-ios-sdk now requires
use_frameworks!
in your Podfile and Xcode 13.3+. Note that use_frameworks is not yet compatible with Hermes, Flipper, React Native New Architecture, or react-native 0.69.0. Each of these is being worked on (follow react-native 0.69 PR, Hermes PR) but for now you need react-native 0.68.2 or below, and you must disable hermes and flipper. Expo users should use expo-build-properties + Expo SDK45 to turn on use_frameworks in dynamic mode. -
Storage(customMetadata): android works like web+iOS now: customMetadata if passed in will be updated as a single atomic unit, all keys at once. Any key you want to keep in customMetadata must be passed in during update; any missing keys will be removed. Set customMetadata to null in order to remove customMetadata entirely, omit it during update to leave it unchanged.
-
Functions(custom errors): if your firebase functions return custom HttpsError instances, you must not upgrade yet, custom errors suffered a regression in firebase-ios-sdk 9.0.0 and 9.1.0. The next firebase-ios-sdk release fixes this regression, at which point you may safely use this release in combination with overriding the firebase-ios-sdk version in your Podfile
14.11.1 (2022-06-17)
- analytics: allow manual tracking of ad_impression (931468a), closes #6307 #6312
- android: specify that android services are not exported (39e0444), closes /github.com/firebase/firebase-android-sdk/blob/ad135d8c3c1243b4c673e17bc032ee1052fb2a22/firebase-common/src/main/AndroidManifest.xml#L10-L12
14.11.0 (2022-05-27)
- android, sdk: firebase-android-sdk 30.1.0 (b0462d4)
14.10.1 (2022-05-26)
- android, sdk: bump firebase-android-sdk to 30.0.2 (ad6f928)
14.10.0 (2022-05-26)
- messaging, getToken: add options for messaging instance (88e218e)
- dynamic-links, ios: performDiagnostics API for troubleshooting (0428460)
14.9.4 (2022-05-14)
14.9.3 (2022-05-10)
14.9.2 (2022-05-10)
14.9.1 (2022-04-28)
14.9.0 (2022-04-27)
14.8.1 (2022-04-25)
14.8.0 (2022-04-19)
- ios, sdk: bump firebase-ios-sdk to 8.15.0 (377b465)
14.7.0 (2022-03-23)
- ios, sdk: bump to firebase-ios-sdk 8.14.0 (ba1ddb5)
14.6.0 (2022-03-23)
- auth: allow emulator hostnames to contain hyphens (#6141) (98eb1ce)
- ios, expo: use modern import style, required by Expo 44+ (4060827)
- storage, ios: fix build failure for catalyst compiles (a6dd0cd)
- sdks: firebase-ios-sdk 8.13.0 (95da53e)
14.5.1 (2022-03-05)
- analytics, ios: handle RNFirebaseAnalyticsWithoutAdIdSupport == false Podfile case correctly (#6078) (ca82e54)
14.5.0 (2022-02-15)
14.4.0 (2022-02-13)
14.3.3 (2022-02-12)
- android, sdk: bump firebase-android-sdk to 29.1.0 (292c424)
14.3.2 (2022-02-10)
- app, ios: use NSInteger not NSInteger* for prefs (0148901)
- functions, emulator: add useEmulator, deprecate useFunctionsEmulator (83b46e7)
- ios, sdk: bump to firebase-ios-sdk 8.12.1 (da6cf01)
14.3.1 (2022-02-07)
- app-check, activate: correctly check activate parameters (a583494), closes #5981
- app-check, activate: return Promise(void) on ios not void (0f23441), closes #6052
- app: specify hyphenated package name in import advice (5e898ec), closes #6009
14.3.0 (2022-01-26)
14.2.4 (2022-01-24)
- android, sdk: bump firebase-android-sdk + versions in docs (8bda4be)
14.2.3 (2022-01-20)
- analytics, ios: Convert NSNull values to nil in order to correctly remove user properties (dbc79c3), closes #4931
- ios, sdk: bump firebase-ios-sdk to 8.11.0 (40322e2)
14.2.2 (2022-01-06)
- app, android: minSdk should be 19 to match firebase-android-sdk (#5984) (8015779)
- ios, messaging: add ios version guard for
UNAuthorizationOptionProvidesAppNotificationSettings
(#5986) (e8922c0) - ios, messaging: serialize google.c.sender.id to message.from (d3621eb)
14.2.1 (2021-12-31)
THIS IS A BREAKING CHANGE FOR APP CHECK RETURN VALUES Please note that AppCheck is still a beta product thus it does not currently get a semantic versioning guarantee but, handling the change is easy - if you access the token via this API, you will now get an object and need to get the token property from inside it, vs the token coming back directly.
14.2.0 (2021-12-31)
14.1.0 (2021-12-18)
- app, android: firebase-android-sdk 29.0.3 to fix underlying NPE in 29.0.2 (#5946) (051f4a6)
- crashlytics, ios: alter header import style for Expo SDK 44 compat (#5947) (e45f37c)
14.0.1 (2021-12-15)
- app, expo: Update AppDelegate config plugin for Expo SDK 44 (#5940) (185756d)
- auth, phone: call verifyPhoneNumber callbacks correctly (7c082be)
14.0.0 (2021-12-14)
- fix(firestore)!: fix Long/Double conversion issues #3004 (#5840) (910d4e4), closes #3004 #5840 #3004
- Previous versions of firestore here incorrectly saved integers as doubles on iOS, so they did not show up in
where
/in
queries. You had to save numbers as strings if you wantedwhere
/in
queries to work cross-platform. Number types will now be handled correctly. However, If you have integers saved (incorrectly!) as double (from previous versions) and you use where / in style queries on numbers, then the same document will no longer be found via .where. Mitigation could be to go through your whole DB and load and re-save the integers correctly, or alter queries. Please test your where / in queries that use number types if this affects you.
13.1.1 (2021-12-14)
- deps: AGP7.0.4, firebase-android-sdk 29.0.2, javascript deps (55d0a36)
- firestore, types: allow FieldValues, Date and Timestamp in doc set and update (#5901) (5f4eadf)
- messaging, ios: native.getInitialNotification can be undefined (#5926) (f0318d2)
13.1.0 (2021-12-02)
- android, emulator: add firebase.json config element to bypass localhost remap (#5852) (ddf3f5f)
- sdks: firebase-ios-sdk 8.10.0 / firebase-android-sdk 29.0.1 (f6949c9)
13.0.1 (2021-11-05)
- ios, sdks: bump firebase-ios-sdk to 8.9.1 (4871131)
13.0.0 (2021-10-31)
-
analytics: allow custom event parameters for screen_view events (#5811) (02e888e), closes #4594
-
dynamic-links, android: avoid double-consuming WritableMap (514e6bd), closes #5812
-
rename default branch to main (25e1d3d)
-
feat(sdks, android)!: firebase-android-sdk v29 / minSdkVersion API19 / target+compile API31 (#5825) (f60afe1), closes #5825
-
fix(analytics)!: add missing reserved event names (#5630) (2c1958e), closes #5630
- ios, sdks: bump firebase-ios-sdk to 8.9.0 (bb9ba50)
- firebase-android-sdk 29 requires android/build.gradle minSdkVersion 19 (as required in react-native 0.64+)
- some reserved words that were accepted before will throw exceptions now that the list is complete - do not use reserved words for analytics events
12.9.3 (2021-10-22)
12.9.2 (2021-10-17)
- app, expo: update iOS
AppDelegate
plugin to work with Expo SDK 43 (#5796) (d67c3b9) - release: use https for npm registry url (6fdca25)
12.9.1 (2021-10-10)
- app, sdks: bump firebase-android-sdk to 28.4.2 (e33c0ac)
12.9.0 (2021-10-03)
- ios, app: minimum cocoapods version is 1.10.2, not just 1.10.0 (914e447)
- sdk: bump firebase-ios-sdk to 8.8.0 (c56bdb3)
12.8.0 (2021-09-14)
- sdk: firebase-ios-sdk to 8.7.0 / firebase-android-sdk 28.4.1 (ee79ab3)
12.7.5 (2021-09-04)
- analytics: allow more than 25 event parameters (5dde564)
- app, ios: correct path to 'Info.plist' for ios build dependency (#5677) (ea6920c), closes #5152 #5153
- auth, android: linkWithCredential will not attempt to upgrade from anon user (matches iOS) (#5694) (7cd1716), closes #4487 #4552
12.7.4 (2021-08-31)
- app-distribution, ios: avoid crash when releaseNotes is nil (#5667) (41c0107)
- app-distribution, ios: correct downloadURL usage for JS serialization (#5668) (66d991c)
- dynamic-links, android: check for null currentIntent in getInitialLink to avoid crash (#5662) (415c200)
12.7.3 (2021-08-24)
- messaging, ios): revert "fix(messaging, ios: only call onMessage handler if message is data-only or undelivered" (#5641) (f2162b7)
12.7.2 (2021-08-21)
- app-check, ios: use RNFBAppCheck everywhere vs RNFBAppcheck (2545349)
- app-distribution, android: export methods so module loads (bc0ae4f)
12.7.1 (2021-08-20)
- app, android: react-native 0.65 compatibility (262452d)
12.7.0 (2021-08-19)
- app-check, android: include all referenced dependencies correctly (af336a3)
- app-check: getToken(false) fix, listener unsubscribe is a function (8b42e20)
- installations, types: fixup installations module types (781a303)
- onMessage to only trigger for data-only or undelivered messages (a31643b)
- app-distribution: Implement Firebase App Distribution module (8fa1263)
- app, config: implement setLogLevel API (cac7be3)
- app, ios: adopt firebase-ios-sdk 8.6.0 (22d79f1)
- firestore, emulator: implement easier useEmulator API (f039196)
- installations: implement Firebase Installations module (3ef3410)
12.6.1 (2021-08-17)
- crashlytics, config: handle new app_data_collection_default_enabled key (81aa17f)
12.6.0 (2021-08-16)
- app-check, ios: allow token auto refresh config in firebase.json (b9670c1)
- app, android: put app init provider / registrar in correct manifest (8408160)
- app, expo: node 12 compatibility with
fs.promises
in ios plugin (#5591) (97f9090) - in-app-messaging, config: implement in_app_messaging_auto_collection_enabled firebase.json setting (9d11ce9)
- messaging, ios: return after resolving to avoid useless work (491436f)
- sdks, android: firebase-android-sdk 28.3.1, google-services plugin 4.3.10 (4562cd8)
- analytics, config: expose all the native data collection toggles (f5eaffb)
- app, config: implement app_data_collection_default_enabled firebase.json key (1e47d45)
- dynamic-links: add support for utmParameters (#5593) (3002caf)
- perf, config: expose perf module deactivate toggle (4e25bf6)
12.5.0 (2021-08-12)
- app, expo: Use
fs/promises
in Node 12 compatible way (#5585) (64f569a) - database, android: remove System.err statement from useEmulator development (dc84872)
- expo: do not publish plugin tests and sources (#5565) (6b5dca5)
- app-check: implement AppCheck module (8cd4fa3)
- firestore: serverTimestampBehavior (#5556) (60fe72e)
- ios, sdks: bump firebase-ios-sdk to 8.5.0 (d4b2015)
12.4.0 (2021-07-29)
- sdks, android: use firebase-android-sdk 28.3.0, play-services-auth 19.2.0 (#5555) (edcd4e2)
- Add Expo config plugin (#5480) (832057c)
12.3.0 (2021-07-21)
- ios: bump firebase-ios-sdk dependency to 8.4.0 (7a75cb9)
12.2.0 (2021-07-16)
- database: call cancellation callback when using ref.on (#5371) (26b59db)
- messaging: Refactor code to avoid bugs (5039759)
- storage, ios: dont enumerate on dictionary being mutated (#5455) (daaa72d)
- firebase-ios-sdk 8.3.0 / firebase-android-sdk 28.2.1 (c73ea10)
- app, sdks: use firebase-ios-sdk 8.2.0 / firebase-android-sdk 28.2.0 (0d26af9)
- crashlytics: add helper methods for log and setCustomKey (06d515c)
12.1.0 (2021-06-11)
- app: bump SDKs: firebase-android-sdk 28.1.0 / firebase-ios-sdk 8.1.1 (d64e2e5)
12.0.0 (2021-05-19)
-
database: add database.useEmulator() (0632ca5)
-
sdks: firebase-ios-sdk 8.0.0 / firebase-android-sdk 28.0.1 (d97587b)
-
storage, emulator: implement storage emulator (1d3e946)
-
storage, md5hash: allow md5hash to be set on upload (be1bed8)
-
chore(storage, android)!: remove EXTERNAL_STORAGE permissions for Android 10/11 compat (69b6f88)
-
feat(firestore)!: add support for ignoreUndefinedProperties (756cfa6)
- android: correct lint issues for various API mis-use (eb8d893), closes #3917
- storage, android: correctly catch native exceptions for Promise.reject (e938824), closes #4097
- Storage: if you need READ_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGE permission add them in your app AndroidManifest.xml
- Firestore: undefined values throw like firebase-js-sdk now. Use ignoreUndefinedProperties setting 'true' to behave as before
- AdMob: Removed from upstream SDKs. Stay on v11.5.0 for now if you need AdMob.
@invertase/react-native-admob
package planned with v11.5.0 code - ML: APIs removed from upstream SDKs. Migrate to cloud function / auth gateway to cloud APIs, as mentioned in links on ML usage document.
- Instance ID: APIs removed from upstream SDKs. Use Messaging's getToken() to get tokens, see upstream documentation to migrate if needed
- Messaging.getToken/deleteToken: scoped token APIs removed from upstream APIs. Remove scopes from API calls. deleteToken() should work on iOS now.
11.5.0 (2021-05-12)
- admob: mark BannerAd callbacks as optional (9a5a21f)
- app, json-schema: admob_delay_app_measurement_init type is boolean (#5297) (d931b48), closes #5295
- firestore: Incorrect error message for GeoPoint latitude out of range (f9909fa)
- ios: admob shows only non-personalized ads (#5262) (0b62d5a)
- messaging, android: avoid using rn61+ symbol (4637332), closes #5236
11.4.1 (2021-04-29)
Note: Version bump only for package react-native-firebase
11.4.0 (2021-04-29)
- analytics: added missing price parameter to the Item structure (#5232) (b972cb6)
- analytics: import using package name not relative path (#5229) (99f8d2c)
- app, android: correct TaskExecutor shutdown error (a7729a5), closes #5225
- database, update: allow empty objects in ref.update() (574f691), closes #5218
- messaging, android: repair crash handling remote notifications (6a30d4b) BREAKING WARNING - this accidentally requires minimum react-native 0.61
- analytics, appInstanceId: implement getAppIntanceId() method for GA4 use (#5210) (a51e97b)
- analytics, ATT: allow use of AnalyticsWithoutAdIdSupport pod (da6b811)
- app, android: support list of Activities to ignore when detecting AppState (#5235) (50a384f)
- app, firebase-ios-sdk: move to version 7.11.0 (f25d25d)
- messaging, android: repair crash handling remote notifications (6a30d4b) BREAKING WARNING - this accidentally requires minimum react-native 0.61 - we may issue a 11.4.x release that reverts but please be careful
11.3.3 (2021-04-24)
11.3.2 (2021-04-19)
- all, android: purge jcenter() from android build (2c6a6a8)
- messaging: Missing notification on restart (#5181) (ea6e138)
11.3.1 (2021-04-18)
- admob, android: force admob dependency to compatible v19 (19fe6df)
11.3.0 (2021-04-16)
- admob, ios: bump PersonalizedAdConsent to 1.0.5 (3df9164)
- android, utils: fix rare crash getting documents directory (#5118) (f0a2957)
- app, ios: formally note cocoapods v1.10+ requirement in podspec (3c90c59)
- app, ios-plist: make sure Info.plist exists before processing (245149c), closes #5152
- app, secondary: reject if initializeApp fails on iOS (d76eba3), closes #5134
- crashlytics, debug: Disable Crashlytics in debug mode by default (#5117) (eeeba2e)
- crashlytics, ios: register library with dynamic version string (90bceb2)
- crashlytics, ios: warn if debugger will break crashlytics (d6b6d23)
- database, types: harmonize database.on() w/firebase-js-sdk (6aea33f), closes #4550
- crashlytics: add configuration to exception handler chaining behavior (4c640ff)
- crashlytics: flag fatal errors for crashlytics and analytics (c94546d)
- ios, sdks: bump firebase-ios-sdk to 7.10.0 (d2838ff)
11.2.0 (2021-03-26)
- sdks: firebase-ios-sdk 7.9.0 / firebase-android-sdk 26.8.0 (324f8ff)
11.1.2 (2021-03-17)
- database, types: harmonize on/once/off types with firebase-js-sdk (fbc06ca), closes #5027
- listeners: port Emitter.once to analogous addListener/remove API (required for react-native 0.64) (5eb2f59)
11.1.1 (2021-03-16)
- app, firebase-ios-sdk: bump to firebase-ios-sdk v7.8.1 for analytics fix (8cd1d6e)
11.1.0 (2021-03-13)
- app, android: fixes possible crash on first launch (#4990) (06eebad), closes #4979
- app, types: initializeApp returns Promise (f3b955c)
- auth, ios: fix compile error in setTenantId code (311427e)
- auth, useUserAccessGroup: document auth/keychain-error, add test coverage (60ec5f9), closes #5007
- app, sdks: firebase-ios-sdk v7.8.0 / firebase-android-sdk v26.7.0 (d2b0074)
- auth, multi-tenant: add multi-tenant (tenantID) support (935dbc3)
- auth, multi-tenant: expose user.tenantId in javascript (4f6d426)
- crashlytics, native: add non-fatal exception logger for 3rd party native code use (#5015) (b3e6810)
11.0.0 (2021-03-03)
- app, ios: failing to resolve ios sdk from package.json is an error (29d797d)
- firestore, types: make all Settings properties optional (#4965) (f501fff)
- tests, ios: resolve firebase-ios-sdk from app package.json (680eb37)
- android, sdk: update firebase-android-sdk to 26.6.0 (5786641), closes /firebase.google.com/support/release-notes/android#bom_v26-6-0
- functions: support custom domains BREAKING requires firebase-ios-sdk 7.1.0+ / firebase-android-sdk 26.2.0+ (#4950) (381eae5)
- ios, sdk: bump firebase-ios-sdk to v7.7.0 (bc893ab)
- functions: minimum native SDK requirements now firebase-ios-sdk 7.1.0+ / firebase-android-sdk 26.2.0+
10.8.1 (2021-02-22)
- admob: AdEventHandler returns javascript (not native) unsubscribe function (#4920) (bff9dec)
- admob, android: unity ads require Activity Context (#4921) (23e5998)
10.8.0 (2021-02-13)
- dynamic-links, dependencies: analytics is optional (3e980d4), closes /github.com/invertase/react-native-firebase/pull/4850#issuecomment-776516887
- dynamic-links, ios: remove double-reject on resolveLink (395a723)
- app, android-sdk: 26.5.0 (requires gradle v5.6.4+ / android gradle plugin v3.4.2+) (1132f16)
- crashlytics: add JS exception non-fatal error generation toggle (#4904) (63c35b3)
10.7.0 (2021-02-09)
- ios, sdk: bump firebase-ios-sdk from 7.5.0 to 7.6.0 (2e283f7), closes /firebase.google.com/support/release-notes/ios#7
10.6.4 (2021-02-05)
- auth, android: add browser dependency as crash workaround (f0b4d07), closes #4744
- ml, android: remove unnecessary on-device dependencies (1451073), closes #4750
10.6.3 (2021-02-05)
Note: Version bump only for package react-native-firebase
10.6.2 (2021-02-05)
10.6.1 (2021-02-04)
Note: Version bump only for package react-native-firebase
10.6.0 (2021-02-04)
- dynamic-links: dynamic-links requires analytics, add peer dependency (5c84d46), closes #4821
- dynamic-links, android: getInitialLink returned more than once, sometimes returned null (#4735) (c68a62c)
- emulator: add notice on localhost URL remapping for android (73869e1), closes #4810
- in-app-messaging: in-app-messaging requires analytics, add peer dependency (ea80f54), closes #4821
- remote-config: remote-config requires analytics, add peer dependency (06c2a18), closes #4821
- admob, android: add adaptive banner support (#4840) (51edf96)
- app: firebase-ios-sdk 7.4.0 -> 7.5.0, firebase-android-sdk 26.3.0 -> 26.4.0 (9c4ada8)
- perf: support "perf_auto_collection_enabled" flag in firebase.json (#4870) (e54bf49)
10.5.1 (2021-01-19)
Note: Version bump only for package react-native-firebase
10.5.0 (2021-01-18)
10.4.1 (2021-01-08)
10.4.0 (2020-12-30)
10.3.1 (2020-12-18)
- storage, ios: resolve listAll promise once and only once on error (#4688) (762bf6f), closes /github.com/firebase/firebase-ios-sdk/blob/14764b8d60a6ad023d8fa5b7f81d42378d92e6fe/FirebaseStorage/Sources/FIRStorageReference.m#L417
10.3.0 (2020-12-18)
- admob, ios: null check interstitialAd on show (#4670) (c3b4cb0)
- dynamic-links, ios: resolveLink 404 error handling fix (575083d)
- ios, storage: handle nil file extension from ios14 M1 emulators (#4676) (e1eb992)
- app: bump firebase-android-sdk / firebase-ios-sdk versions (cd5a451)
10.2.0 (2020-12-11)
- docs: correct path to source code (#4659) (b535757)
- remote-config, ios: correct number comparison / fix fetch throttling (#4664) (5a68a8a)
10.1.1 (2020-12-02)
10.1.0 (2020-11-26)
- analytics: add missing quantity parameter to the Item structure (#4536) (f9935e7)
- app: convert NativeFirebaseError.getStackWithMessage to static to fix crash (#4619) (090b0bb)
- app, android: remove firebase-core from dependencies (#4597) (22c615c)
- messaging, badge: use new iOS JSON location for FCM badge information (#4560) (bda2d67)
- admob, ios: add adaptive banner support (#4565) (ce8ac1a)
- crashlytics: add custom message ability to javascript stack traces (#4609) (afaa95d)
- messaging, android: make native serializer object + events builder APIs public (#4618) (e54fecc)
10.0.0 (2020-11-17)
- analytics remove deprecated analytics methods (18f5b0f)
- breaking change to mark new internal versioning requirements.