---
title: Pipeline SDK compatibility
description: >-
  Compare React Native Firebase's Firestore pipelines API to firebase-js-sdk:
  supported features, known gaps, and platform-specific execution notes.
next: /functions/usage
previous: /firestore/pipelines/subcollection
---
> ## Documentation Index
> Fetch the complete documentation index at: https://rnfirebase.io/llms.txt
> Use this file to discover all available pages before exploring further.

## Prerequisites

- Working knowledge of [Pipelines overview](/firestore/pipelines) (Enterprise database, cloud execution, `@react-native-firebase/firestore/pipelines` imports).

React Native Firebase aims to be a **drop-in replacement** for the [firebase-js-sdk Firestore pipelines module](https://firebase.google.com/docs/reference/js/firestore_pipelines) on React Native targets. Every pipeline function and type that the firebase-js-sdk pipelines module exports is exported from `@react-native-firebase/firestore/pipelines`, and the signatures match except for the single type difference listed below. This page summarizes the runtime caveats so you can plan migrations from web samples.

# Summary

{/* prettier-ignore */}
| Category | Status |
| --- | --- |
| Core pipeline builder (`pipeline()`, stages, `execute()`) | **Supported** on Android, iOS, and macOS |
| Expression helpers (aggregates, strings, arrays, maps, timestamps, vectors) | **Supported** on Android, iOS, and macOS |
| firebase-js-sdk pipeline exports | **Exported** from `@react-native-firebase/firestore/pipelines` |
| `execute({ indexMode, rawOptions })` | Applied on Android, rejected on iOS |

# Runtime caveats

Matching exports do not guarantee identical runtime behavior on every target:

- The `parent()` expression helper may be unavailable on web and on macOS when pipelines execute through the firebase-js-sdk interop path.
- A pipeline that uses the `search` stage with text matching needs a deployed composite search index on the Enterprise database. Native iOS and Android run search queries once that index exists.
- The `geoDistance` helper is sent to the native SDKs through the generic function path, not a dedicated typed bridge.
- `execute` options `indexMode` and `rawOptions` are applied on Android and rejected on iOS.
- Pipeline APIs added in a later firebase-js-sdk release reach React Native Firebase in a later package release. Check the release notes of both when you port a sample.

If you depend on one of these, follow [Firebase pipeline release notes](https://firebase.google.com/support/release-notes/js) and React Native Firebase changelogs, or open a feature request with your use case.

# Type-shape differences

`CollectionStageOptions` is the one type whose shape differs: React Native Firebase types `collection` as `string | Query`, and the firebase-js-sdk types it as `string | CollectionReference`. `StageOptions`, `TimeGranularity`, `isType`, and `timestampDiff` match the firebase-js-sdk declarations, including the lowercase `isoweek` and `isoyear` time granularity literals.

# Platform execution matrix

{/* prettier-ignore */}
| Platform | Execution backend | Pipeline database |
| --- | --- | --- |
| Android | Native Android Firestore SDK | Enterprise (cloud) |
| iOS | Native iOS Firestore SDK | Enterprise (cloud) |
| macOS | firebase-js-sdk via web interop | Enterprise (cloud) |

All platforms require network access to your Firestore Enterprise database for pipeline `execute()`. The local Firestore emulator is not a supported target for pipeline development.

# Staying up to date

- Upstream API reference: [firebase-js-sdk `firestore/pipelines`](https://firebase.google.com/docs/reference/js/firestore_pipelines)
- RNFB import path: `@react-native-firebase/firestore/pipelines`

Check the release notes after upgrading `@react-native-firebase/firestore` for changes to the caveats above.
