Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: invertase/react-native-firebase
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main@{1day}
Choose a base ref
...
head repository: invertase/react-native-firebase
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
  • 4 commits
  • 41 files changed
  • 2 contributors

Commits on May 14, 2026

  1. refactor(perf)!: migrate to TypeScript

    BREAKING CHANGE: perf types now match firebase-js-sdk as closely as possible
    
    Please see https://rnfirebase.io/migrating-to-v25 for help migrating if needed.
    
    react-native-firebase has a goal to be a drop-in replacement for firebase-js-sdk, with native extensions and performance. It has always worked that way at the javascript level but the typescript types have been divergent.
    
    We are fixing that as we refactor to typescript. Please bear with us as we get closer to our goal of react-native-firebase matching firebase-js-sdk both in functionality where possible, but also in exact typescript typing.
    
    Specifics for Performance:
    
    - changed modular `initializePerformance(app, settings)` to return `FirebasePerformance` synchronously instead of `Promise<Performance>`, matching firebase-js-sdk; TypeScript consumers that call `.then(...)` on it will need to use the returned instance directly.
    - aligned the modular `FirebasePerformance` type with firebase-js-sdk, so it no longer exposes older namespaced instance-style methods such as `newTrace`, `startTrace`, `newHttpMetric`, `newScreenTrace`, `startScreenTrace`, or `setPerformanceCollectionEnabled` in the modular typings; use `trace(perf, name)`, `httpMetric(perf, url, method)`, `newScreenTrace(perf, name)`, `startScreenTrace(perf, name)`, and the `dataCollectionEnabled` property instead.
    - changed `PerformanceSettings` to the firebase-js-sdk shape, with optional `dataCollectionEnabled` and `instrumentationEnabled`.
    - changed modular trace and metric `getAttribute(...)` typings from `string | null` to `string | undefined`, matching firebase-js-sdk.
    - kept React Native-only modular exports for native functionality: `httpMetric`, `newScreenTrace`, `startScreenTrace`, plus `HttpMethod`, `HttpMetric`, and `ScreenTrace`.
    - kept the deprecated namespaced API under `FirebasePerformanceTypes`, but split it from the modular public types and marked it as deprecated for compatibility.
    mikehardy committed May 14, 2026
    Configuration menu
    Copy the full SHA
    4aedfe8 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2026

  1. Configuration menu
    Copy the full SHA
    5fcaff1 View commit details
    Browse the repository at this point in the history
  2. refactor(installations)!: migrate to TypeScript

    BREAKING CHANGE: installations modular types now match firebase-js-sdk
    
    Please see https://rnfirebase.io/migrating-to-v25 for help migrating if needed.
    
    react-native-firebase has a goal to be a drop-in replacement for firebase-js-sdk, with native extensions and performance. It has always worked that way at the javascript level but the typescript types have been divergent.
    
    We are fixing that as we refactor to typescript. Please bear with us as we get closer to our goal of react-native-firebase matching firebase-js-sdk both in functionality where possible, but also in exact typescript typing.
    
    Specifics for Installations:
    
    changed modular getInstallations() to return the firebase-js-sdk-style Installations type, which only exposes app; TypeScript consumers should use the modular helpers getId(installations), getToken(installations), and deleteInstallations(installations) instead of calling .getId(), .getToken(), or .delete() on the returned instance.
    changed modular deleteInstallations(installations) so the installations argument is required in the TypeScript surface, matching firebase-js-sdk. Code that previously relied on the old optional typing should pass getInstallations() explicitly.
    preserved the namespaced API surface: installations(), firebase.installations(), firebase.app().installations(), and FirebaseInstallationsTypes.Module remain available for compatibility, with deprecation annotations added.
    added explicit modular public types including Installations, IdChangeCallbackFn, and IdChangeUnsubscribeFn.
    russellwheatley authored and mikehardy committed May 15, 2026
    Configuration menu
    Copy the full SHA
    739a4ca View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d488470 View commit details
    Browse the repository at this point in the history
Loading