|
|
|
|
@@ -7,16 +7,18 @@ Firebase API Coverage.
|
|
|
|
|
Many of the manual native installation steps for Android & iOS have been removed / internally automated
|
|
|
|
|
and most modules can now be used just by linking it (e.g. `react-native link @react-native-firebase/analytics`).
|
|
|
|
|
|
|
|
|
|
The following modules are completed and published to NPM on the `alpha` tag ready to be consumed:
|
|
|
|
|
The following modules are completed and published to NPM and ready to be consumed (as patch versions only, until all modules are ready, at which point they will all be published starting from v6.0.0):
|
|
|
|
|
|
|
|
|
|
| Name | Downloads | Coverage |
|
|
|
|
|
| --------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: |
|
|
|
|
|
| [Analytics](/packages/analytics) | [](https://www.npmjs.com/package/@react-native-firebase/analytics) | [](https://api.rnfirebase.io/coverage/analytics/detail) |
|
|
|
|
|
| [App](/packages/app) | [](https://www.npmjs.com/package/@react-native-firebase/app) | [](https://api.rnfirebase.io/coverage/app/detail) |
|
|
|
|
|
| [App Invites](/packages/invites) | [](https://www.npmjs.com/package/@react-native-firebase/invites) | [](https://api.rnfirebase.io/coverage/invites/detail) |
|
|
|
|
|
| [App Indexing](/packages/indexing) | [](https://www.npmjs.com/package/@react-native-firebase/indexing) | [](https://api.rnfirebase.io/coverage/indexing/detail) |
|
|
|
|
|
| [Cloud Functions](/packages/functions) | [](https://www.npmjs.com/package/@react-native-firebase/functions) | [](https://api.rnfirebase.io/coverage/functions/detail) |
|
|
|
|
|
| [Cloud Storage](/packages/storage) | [](https://www.npmjs.com/package/@react-native-firebase/storage) | [](https://api.rnfirebase.io/coverage/storage/detail) |
|
|
|
|
|
| [Crashlytics](/packages/crashlytics) | [](https://www.npmjs.com/package/@react-native-firebase/crashlytics) | [](https://api.rnfirebase.io/coverage/crashlytics/detail) |
|
|
|
|
|
| [Dynamic Links](/packages/links) | [](https://www.npmjs.com/package/@react-native-firebase/links) | [](https://api.rnfirebase.io/coverage/links/detail) |
|
|
|
|
|
| [In-app Messaging](/packages/fiam) | [](https://www.npmjs.com/package/@react-native-firebase/fiam) | [](https://api.rnfirebase.io/coverage/fiam/detail) |
|
|
|
|
|
| [Instance ID](/packages/iid) | [](https://www.npmjs.com/package/@react-native-firebase/iid) | [](https://api.rnfirebase.io/coverage/iid/detail) |
|
|
|
|
|
| [ML Kit Natural Language ](/packages/ml-natural-language) | [](https://www.npmjs.com/package/@react-native-firebase/ml-natural-language) | [](https://api.rnfirebase.io/coverage/ml-natural-language/detail) |
|
|
|
|
|
@@ -108,6 +110,7 @@ await analytics().setUserId('12345678');
|
|
|
|
|
- [INTERNAL] Improved error codes & handling for all Firebase services;
|
|
|
|
|
- Standardised native error to JS conversion
|
|
|
|
|
- [DEVEX] Native promise rejection errors now contain additional properties to aid debugging
|
|
|
|
|
- All React Native Firebase native methods should now always return an Error to JS - even if the Error occurred due to native code.
|
|
|
|
|
- [BUGFIX] All native events are now queued natively until a JS listener is registered. This fixes several race conditions for events like `onMessage`, `onNotification`, `onLink` etc where the event would trigger before JS was ready.
|
|
|
|
|
- [NEW][🔥] In an effort to further reduce manual native code changes when integrating and configuring React Native Firebase; we have added support for configuring various Firebase services & features via a `firebase.json` file in your project root.
|
|
|
|
|
- [NEW][ios] CocoaPods static framework support for all modules (you can use `use_frameworks!` without issues relating to this lib)
|
|
|
|
|
@@ -123,6 +126,15 @@ await analytics().setUserId('12345678');
|
|
|
|
|
- [BREAKING] Waiting for apps to init via `.onReady()` has been removed. `initializeApp()` now returns a promise to the same effect
|
|
|
|
|
- [BREAKING] Trying to initialise the `[DEFAULT]` Firebase app in JS when it was already initialised natively will now throw an error (formerly warned)
|
|
|
|
|
|
|
|
|
|
## App Indexing (indexing) - **[NEW]**
|
|
|
|
|
|
|
|
|
|
Support for handling an incoming app index URL has been added to React Native Firebase.
|
|
|
|
|
|
|
|
|
|
- [NEW] Handle the app opening via an app indexing URL with `indexing().getInitialURL()`.
|
|
|
|
|
- [NEW] Setup a realtime event listener to handle app indexing URL opening whilst the app is active with `indexing().onOpenURL()`.
|
|
|
|
|
|
|
|
|
|
> Support for Android events will be integrated post-v6 release. For now this is purely a wrapper around `Linking` in React Native.
|
|
|
|
|
|
|
|
|
|
## App Invites (invites)
|
|
|
|
|
|
|
|
|
|
- [NEW] Added `createInvitation(title: string, message: string)` method to replace construction an Invite from `new firebase.invites.Invitation` (this is still supported for now)
|
|
|
|
|
@@ -160,6 +172,15 @@ await analytics().setUserId('12345678');
|
|
|
|
|
- Changes do not take effect until the next app startup
|
|
|
|
|
- This persists between app restarts and only needs to be called once, can be used in conjunction with `isCrashlyticsCollectionEnabled` to reduce bridge startup traffic - though calling multiple times is still allowed
|
|
|
|
|
|
|
|
|
|
## Dynamic Links (links)
|
|
|
|
|
|
|
|
|
|
- [NEW][ios][🔥] Manually adding `AppDelegate` methods to support receiving Dynamic Link open events is no longer required, we swizzle this at runtime and automatically intercept the required events.
|
|
|
|
|
- [BUGFIX] Links should now always be accessible via `onLink` & `getInitialLink`
|
|
|
|
|
- This fix is a side-effect of the bugfix mentioned above in the `all modules` section ('`All native events are now queued natively`')
|
|
|
|
|
- [BREAKING] Creating a Dynamic Link builder via `new firebase.links.DynamicLink(link, domainURIPrefix)` has been deprecated, use `firebase.links().newDynamicLinkParameters(link, domainURIPrefix)` instead.
|
|
|
|
|
- [BREAKING] Some previously allowed parameter configurations will now throw an argument error, e.g. trying to set any `DynamicLinkIOSParameters` param without providing an iOS bundle id will now error.
|
|
|
|
|
- these configurations were incorrect to begin with but were never flagged to user code so may have gone unnoticed
|
|
|
|
|
|
|
|
|
|
## Functions (functions)
|
|
|
|
|
|
|
|
|
|
- [BUGFIX] Fixed an issue where `useFunctionsEmulator` does not persist natively (Firebase iOS SDK requires chaining this method before other calls and does not modify the instance, Android however persists this)
|
|
|
|
|
@@ -186,6 +207,18 @@ The Performance Monitoring API has had a significant API change as originally hi
|
|
|
|
|
- [NEW] Added support for `firebase.perf().isPerformanceCollectionEnabled: boolean`
|
|
|
|
|
- [NEW] Added `firebase.perf().startTrace(identifier: string): Promise<Trace>;` as a convenience method to create and immediately start a Trace
|
|
|
|
|
|
|
|
|
|
## Realtime Database (database)
|
|
|
|
|
|
|
|
|
|
The Realtime Database module has had a large re-write, fixing various inconsistencies against the web SDK, along with improving data serialization on the native side by moving intensive serialization work off the UI thread.
|
|
|
|
|
|
|
|
|
|
- [BREAKING][bugfix] The `Reference` class now extends a `Query` class (to match the web SDK). Currently in v5 everything is within the `Reference` class, allowing for incorrect behaviour such as chaining a reference only method to a query, e.g. `ref().orderByKey().once()`. This is now not possible and will cause a standard JavaScript error.
|
|
|
|
|
- [BREAKING][bugfix] Internal validation for all methods has now been added. With v5 in some cases, incorrect values would be passed along to native and causing native exceptions/potential crashes.
|
|
|
|
|
- [BREAKING][bugfix] All query based modifiers are now validated as per the Web SDK spec. In v5 it is possible to chain queries which are not allowed together causing native errors (e.g. `.orderByKey().orderByPriority()`, `.startAt('foo', 'bar').orderByKey()` etc). Doing so in v6 will now throw an error to keep it in-line with the Web SDK.
|
|
|
|
|
- [BREAKING][bugfix] `Reference.push` now correctly mimics the Web SDK, returning a thenable reference.
|
|
|
|
|
- [NEW] `DatabaseSnapshot.forEach` now returns the current index key.
|
|
|
|
|
- [NEW] Many methods were missing an `onComplete` handler, which is now implemented as per the Web SDK.
|
|
|
|
|
- [BUGFIX] `DatabaseSnapshot.forEach` correct iterates over "array" fields in the database.
|
|
|
|
|
|
|
|
|
|
## Remote Config (config)
|
|
|
|
|
|
|
|
|
|
The Remote Config API has had a significant API change as originally highlighted would happen in the v5.x.x docs:
|
|
|
|
|
@@ -273,27 +306,6 @@ console.log(suggestedReplies); // [ { text: 'Sure' }, ...etc ]
|
|
|
|
|
|
|
|
|
|
> ML Kit Translate APIs to come in a later release.
|
|
|
|
|
|
|
|
|
|
## Realtime Database (database)
|
|
|
|
|
|
|
|
|
|
The Realtime Database module has had a large re-write, fixing various inconsistencies against the web SDK, along with improving data serialization on the native side by moving intensive work to separate threads.
|
|
|
|
|
|
|
|
|
|
- [BREAKING][BUGFIX] The `Reference` class now extends a `Query` class (to match the web SDK). Currently in v5 everything is within the `Reference` class, allowing for incorrect behaviour such as chaining a reference only method to a query, e.g. `ref().orderByKey().once()`. This is now not possible and will cause a standard JavaScript error.
|
|
|
|
|
- [BREAKING][BUGFIX] Internal validation for all methods has now been added. With v5 in some cases, incorrect values would be passed to causing native exceptions and potential crashes if not handled.
|
|
|
|
|
- [BREAKING][BUGFIX] All query based modifiers are now validated as per the Web SDK spec. In v5 it is possible to chain queries which are not allowed together causing native errors (e.g. `.orderByKey().orderByPriority()`, `.startAt('foo', 'bar').orderByKey()` etc). Doing so in v6 will now throw an error to keep in-line with the Web SDK.
|
|
|
|
|
- [BREAKING][BUGFIX] `Reference.push` now correctly mimics the Web SDK, returning a thenable reference.
|
|
|
|
|
- [NEW] `DatabaseSnapshot.forEach` now returns the current index key.
|
|
|
|
|
- [NEW] Many methods were missing an `onComplete` handler, which is now implemented as per the Web SDK.
|
|
|
|
|
- [BUGFIX] `DatabaseSnapshot.forEach` correct iterates over "array" fields in the database.
|
|
|
|
|
|
|
|
|
|
## App Indexing (indexing) - **[NEW]**
|
|
|
|
|
|
|
|
|
|
Support for handling an incoming app index URL has been added to React Native Firebase.
|
|
|
|
|
|
|
|
|
|
- [NEW] Handle the app opening via an app indexing URL with `indexing().getInitialURL()`.
|
|
|
|
|
- [NEW] Setup a realtime event listener to handle app indexing URL opening whilst the app is active with `indexing().onOpenURL()`.
|
|
|
|
|
|
|
|
|
|
> Support for Android events will be integrated post-v6 release.
|
|
|
|
|
|
|
|
|
|
## Utils
|
|
|
|
|
|
|
|
|
|
- [NEW] Added support via `isRunningInTestLab` for checking if an Android application is running inside a Firebase Test Lab environment
|
|
|
|
|
|