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
|**Analytics**| Cross-platform modular API | On-device conversion measurement helpers (`initiateOnDeviceConversionMeasurement*`) are **iOS only**; on Android and web the JS layer resolves without calling native (no-op). `logTransaction` (verified iOS in-app purchase events) is **iOS only** and **rejects** on other platforms. |
88
-
|**Realtime Database**|`goOnline` / `goOffline` are synchronous; web transport toggles |RN helpers are **async**(native bridge). `getServerTime`, `setPersistenceEnabled`, and `setPersistenceCacheSizeBytes` are RN-specific. `forceLongPolling` / `forceWebSockets`**throw** — transport is native-controlled. |
88
+
|**Realtime Database**|`goOnline` / `goOffline` are synchronous; web transport toggles |`goOnline` / `goOffline`are **synchronous**through TurboModules, matching firebase-js-sdk. `getServerTime`, `setPersistenceEnabled`, and `setPersistenceCacheSizeBytes` are RN-specific. `forceLongPolling` / `forceWebSockets`**throw** — transport is native-controlled. |
89
89
|**Phone Number Verification**| N/A (Android SDK only) |**Android only** — all entry points throw on iOS and Web. |
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. |
@@ -534,6 +534,10 @@ The namespaced API for `@react-native-firebase/database` has been **removed**. T
-`goOnline(db)` and `goOffline(db)` (and the database instance methods) now return `void` synchronously (previously `Promise<void>`), matching firebase-js-sdk. Remove any `await` on these calls.
540
+
537
541
# Cloud Storage
538
542
539
543
The namespaced API for `@react-native-firebase/storage` has been **removed**. This package is **modular-only** — use `getStorage()` and root-level helper functions.
Copy file name to clipboardExpand all lines: okf-bundle/new-architecture/migration-work-queue.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -231,7 +231,7 @@ The "keep async if it does network/IO/disk" rule in the discriminator **assumes*
231
231
|`needs-native-change`|`analytics` fire-and-forget setters/events; `app-check/initializeAppCheck`; `firestore/initializeFirestore`; `storage` task controls; storage retry setters | Web APIs are sync or fire-and-forget, but RNFB native paths currently wrap async work or need behavior clarification before sync conversion. |
232
232
|`keep-async`| Firestore persistent cache index manager delete/enable/disable | Web returns `void` but starts real persistent-cache work; do not block JS thread. |
233
233
234
-
**Next slice:**`app/registerVersion` because RNFB already behaves synchronously and Phase S should only change the public type/compare-types entry. Planned subject: `refactor(app): return sync parity for registerVersion`.
234
+
**Next slice:**`convert` inventory complete (2026-07-03). Remaining gap-analysis verdicts (`needs-native-change`, `keep-async`) are out of Phase S scope until native behavior is clarified or documented only.
235
235
236
236
---
237
237
@@ -332,9 +332,9 @@ Skip steps 1–2 when spec shape is known (most Tier D packages).
Copy file name to clipboardExpand all lines: packages/database/android/src/main/java/io/invertase/firebase/database/UniversalFirebaseDatabaseModule.java
Copy file name to clipboardExpand all lines: packages/database/android/src/reactnative/java/io/invertase/firebase/database/NativeRNFBTurboDatabase.java
Copy file name to clipboardExpand all lines: packages/database/android/src/reactnative/java/io/invertase/firebase/database/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboDatabaseSpec.java
Copy file name to clipboardExpand all lines: packages/database/android/src/reactnative/java/io/invertase/firebase/database/generated/jni/RNFBDatabaseTurboModules-generated.cpp
Copy file name to clipboardExpand all lines: packages/database/android/src/reactnative/java/io/invertase/firebase/database/generated/jni/react/renderer/components/RNFBDatabaseTurboModules/RNFBDatabaseTurboModulesJSI-generated.cpp
0 commit comments