Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .spellcheck.dict.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,15 @@ AVD
axios
Axios
backend
Backend
backgrounded
backoff
barcode
Barcode
barcodes
bridgeless
BUGFIX
callables
CarPlay
CDN
Changelog
Expand All @@ -58,6 +60,7 @@ DEVEX
DeviceCheck
Diarmid
Distribution
DOM
dropdown
EAS
e2e
Expand All @@ -73,6 +76,8 @@ Firebase
firebase-admin
firebase-ios-sdk
firebase-js-sdk
firebase-js-sdk-shaped
firebase-js-sdk.
Comment thread
mikehardy marked this conversation as resolved.
FirebaseApp
FirebaseCore
firestore
Expand All @@ -81,6 +86,7 @@ freeform
GDPR
GDPR-compliant
getIdToken
getters
github
globals
gradle
Expand Down Expand Up @@ -109,11 +115,14 @@ Javascript
JDK
JS
JSON
JSDoc
JWT
lastDocument
launchProperties
learnt
Lerna
lifecycle
lockfiles
macOS
MDX
mlkit
Expand All @@ -122,6 +131,7 @@ mono-repo
multidex
Multidex
namespace
namespaces
Namespaced
namespaced
natively
Expand All @@ -131,6 +141,7 @@ non-firebase
NoSQL
Notifee
notifee
nullable
NPE
npm
NPM
Expand All @@ -140,6 +151,7 @@ onwards
OpenID
Perf
perf
parsers
performant
personalization
plist
Expand All @@ -152,6 +164,7 @@ pre-rendered
prebuild
preflight
preloaded
prebuilt
prepended
programmatically
PRs
Expand All @@ -160,6 +173,7 @@ qa
react-native-app-auth
react-native-firebase
react-native-mlkit
react-native-nitro-google-signin
realtime
Realtime
reCAPTCHA
Expand Down Expand Up @@ -205,6 +219,7 @@ TOTP
triaging
TurboModule
TurboModules
typings
TypeDoc
UI
uid
Expand All @@ -226,6 +241,8 @@ v6
v7
v9
v22
v23
v24
v25
Ventura
VertexAI
Expand Down
3 changes: 1 addition & 2 deletions docs/messaging/server-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,7 @@ This means that by default, if your app has users and you allow them to log out

How and when you invalidate a token and generate a new one will be specific to your project, but a common pattern is to delete the FCM token during logout and update your back end to remove it, then to fetch the FCM token during login and update your back end systems to associate the new token with the logged in user.

[deleteToken](https://invertase.github.io/react-native-firebase/_react-native-firebase/messaging/modular/deleteToken.html)
[getToken](https://invertase.github.io/react-native-firebase/_react-native-firebase/messaging/modular/getToken.html)
Use [`deleteToken`](https://invertase.github.io/react-native-firebase/_react-native-firebase/messaging/modular/deleteToken.html) and [`getToken`](https://invertase.github.io/react-native-firebase/_react-native-firebase/messaging/modular/getToken.html) from the modular API.

Note that when a token is deleted by calling the `deleteToken` method, it is immediately and permanently invalid.

Expand Down
49 changes: 49 additions & 0 deletions docs/migrating-to-v24.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ previous: /migrating-to-v23
next: /migrating-to-v25
---

Version 24 includes breaking changes for Firestore TypeScript types and Cloud Functions native integration. Review the sections below for the modules you use.

# Firestore

Version 24 introduces `withConverter` functionality from Firebase JS SDK. Due to the differences in types between references and queries in namespace vs modular API, and the namespaced APIs deprecation cycle being effectively complete with the API set for removal, we have adopted the modular API typing in general for firestore APIs.
Expand Down Expand Up @@ -36,3 +38,50 @@ onSnapshot(doc(getFirestore(), 'foo', 'foo'), {
},
});
```

# Cloud Functions

**PR:** [#8603](https://github.com/invertase/react-native-firebase/pull/8603) / v24.0.0 ([#8799](https://github.com/invertase/react-native-firebase/issues/8799) streaming callables)

From v24 onward, `@react-native-firebase/functions` is implemented as a **TurboModule** and **requires React Native's New Architecture**. The legacy bridge module was removed.

## Who is affected

| You use… | Action |
| ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `@react-native-firebase/functions` on **New Architecture** | No change required |
| `@react-native-firebase/functions` on the **legacy architecture** | Enable New Architecture, or stay on v23 if you cannot migrate yet |
| Other RN Firebase modules only | Functions is the first module with a hard requirement; `@react-native-firebase/app` prints a deprecation warning on legacy architecture builds |

## Enable New Architecture

**React Native CLI (Android)** — set in `android/gradle.properties`:

```properties
newArchEnabled=true
```

**React Native CLI (iOS)** — New Architecture is enabled when `RCT_NEW_ARCH_ENABLED=1` during `pod install` (React Native sets this from `newArchEnabled` on recent templates). Follow the [React Native New Architecture guide](https://reactnative.dev/docs/the-new-architecture/landing-page) for your RN version.

**Expo** — enable in your app config (Expo SDK 52+):

```json
{
"expo": {
"newArchEnabled": true
}
}
```

Rebuild native projects after changing this (`pod install`, clean Android build).

## If New Architecture is disabled

- **Android:** the Functions Gradle script fails the build with `New Architecture support is required for @react-native-firebase/functions`.
- **iOS:** `pod install` fails with `RNFBFunctions requires New Architecture. Enable New Architecture to use this module`.

## API notes

The JavaScript API (`functions()`, `httpsCallable`, modular helpers) is unchanged. v24 also adds [`httpsCallable().stream()`](/functions/usage) support, which relies on the TurboModule implementation.

Other React Native Firebase modules still run on legacy architecture in v24, but old architecture support is deprecated project-wide and will be required for additional modules in future releases.
Loading
Loading