You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/migrating-to-v26.mdx
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ When migrating from firebase-js-sdk web examples, watch for these high-impact ru
90
90
|**Cloud Storage**|`uploadBytes` / `uploadString` from JS blobs |`putFile` and `writeToFile` are **native-only** file-path APIs with no firebase-js-sdk equivalent. Retry-time setters are modular functions on RN, not instance properties. |
91
91
|**Cloud Messaging**| Web push / service-worker surface | FCM token lifecycle, permissions, background handlers, and **APNs token APIs are iOS only**. Event delivery still uses the legacy native event proxy during the TurboModule migration; behavior matches pre-v26 releases but will change when Codegen events land in a future release. |
92
92
|**Remote Config**|`reset()` clears server and local state |`reset()` is **Android only** — iOS does not clear activated, fetched, or default Remote Config values. `setDefaultsFromResource` loads from native resource files (`.plist` / XML). |
93
-
|**Performance**|`initializePerformance` returns synchronously; trace `start`/`stop` are sync |`initializePerformance` is **synchronous** on RN (applies settings to the native instance). Trace`start`/`stop` are **async** through the native bridge. |
93
+
|**Performance**|`initializePerformance` returns synchronously; trace `start`/`stop` are sync |`initializePerformance` is **synchronous** on RN (applies settings to the native instance). Trace, HTTP metric, and screen trace `start`/`stop` are **synchronous** through TurboModules, matching firebase-js-sdk. |
94
94
|**Firestore**| IndexedDB persistence, `memoryLocalCache`, `persistentLocalCache`| Local cache factories and IndexedDB APIs are **web only**. Persistence is controlled by the native Firestore SDK. `initializeFirestore` is **async** on RN. |
95
95
|**App Check**| reCAPTCHA version 3 / Enterprise web providers | Use `ReactNativeFirebaseAppCheckProvider` for Device Check, App Attest, Play Integrity, etc. Web reCAPTCHA provider classes have **no RN equivalent**. |
96
96
|**RN-native-only modules**| No web SDK |`crashlytics`, `in-app-messaging`, `app-distribution`, and `ml` are **React Native only** — no firebase-js-sdk modular surface. |
@@ -402,6 +402,11 @@ The namespaced API for `@react-native-firebase/perf` has been **removed**. This
-`Trace`, `HttpMetric`, and `ScreenTrace``start()` / `stop()` now return `void` synchronously (previously `Promise<null>`), matching the firebase-js-sdk web `PerformanceTrace`. The underlying native calls are in-memory, so no `await` is required — remove any `await` on these calls.
408
+
-`startScreenTrace(performance, screenName)` and the internal `startTrace(name)` helper now return the trace instance synchronously instead of a `Promise`.
409
+
405
410
# App Check
406
411
407
412
The namespaced API for `@react-native-firebase/app-check` has been **removed**. This package is **modular-only** — use `getAppCheck()` / `initializeAppCheck()` and root-level helper functions.
|**New Architecture**|**Required** from v26. See [Migrating to v26](/migrating-to-v26#new-architecture-requirement). |
57
57
58
-
**Platform notes:**`initializePerformance` returns synchronously on RN. Custom trace `start`/`stop` are async through the native bridge (unlike the web SDK).
58
+
**Platform notes:**`initializePerformance` returns synchronously on RN. Trace, HTTP metric, and screen trace `start`/`stop` are synchronous through TurboModules, matching firebase-js-sdk.
59
59
60
60
# What does it do
61
61
@@ -81,14 +81,14 @@ Below is how you would measure the amount of time it would take to complete a sp
0 commit comments