Skip to content

Add support for Firestore pipeline operations - #3799

Open
KingDarBoja wants to merge 2 commits into
angular:mainfrom
KingDarBoja:feat/firestore-pipelines
Open

KingDarBoja wants to merge 2 commits into
angular:mainfrom
KingDarBoja:feat/firestore-pipelines

Conversation

@KingDarBoja

@KingDarBoja KingDarBoja commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Checklist

Description

Implement Firestore Pipelines (including lite version).

Code sample

@armando-navarro

armando-navarro commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Thank you for submitting this. This was on my plan of things to add. There's actually so much more than this that needs to be included from Firebase. We'll get this done together. Thank you again.

@armando-navarro armando-navarro added bump: minor Size of the change: a new capability with no breaking change comp: firestore Cloud Firestore (src/firestore). type: feature New capability or enhancement. labels Oct 26, 2026

@armando-navarro armando-navarro left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @KingDarBoja, thanks again, and sorry for taking this long to review this. I had prioritized the AngularFire 22 planning, but now that that's done, and the AngularFire 22 PRs are going to roll out swiftly as a result, I felt it was time for me to get to your PR.

There are three things I'd like changed before approving, plus one optional item.

Lite: pipeline() doesn't type-check

With Firestore from @angular/fire/firestore/lite, inject(Firestore).pipeline() fails to compile:

  • The error is TS2339: Property 'pipeline' does not exist on type 'Firestore'.
  • The cause is in firebase's typings. The types its exports map serves for the Lite pipelines path leave out the pipeline() declaration, so importing straight from firebase/firestore/lite/pipelines fails the same way.
  • At runtime the method is there. Only the type is missing.

Since the docs point Lite users at this entry point, I think we should add the declaration ourselves. With this in src/firestore/lite/pipelines/public_api.ts, the package builds and the Lite call compiles:

import type { Pipeline, PipelineSource } from 'firebase/firestore/lite/pipelines';

declare module '@firebase/firestore/lite' {
  interface Firestore {
    pipeline(): PipelineSource<Pipeline>;
  }
}

export * from './firebase';

Docs

The new section shows only the imports. Could you add:

  • A short example that gets a pipeline from the injected Firestore with firestore.pipeline() and passes it to execute().
  • A note that pipelines need an Enterprise edition database. Firebase's edition comparison says Standard edition is "Limited to Firestore Core operations".

PR description

  • "Issue number for this PR: #3693" won't close the issue when this merges. Fixes #3693 will.
  • Please add Refs #3755 as well, since this covers 2 of the 6 missing entry points listed there.

Optional: a spec for the Lite fix

Could you add a spec that calls pipeline() on the injected Firestore from both entry points, so the Lite fix can't regress? The Lite one fails to compile without the declaration above and passes with it.

Once these are in, mark the PR ready for review and I'll take another look. If I've misread anything here, let me know.

@KingDarBoja
KingDarBoja marked this pull request as ready for review October 26, 2026 14:56
@KingDarBoja

Copy link
Copy Markdown
Contributor Author

@armando-navarro take into account before merging that this PR is pointing to main branch instead of the 21.x.x one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump: minor Size of the change: a new capability with no breaking change comp: firestore Cloud Firestore (src/firestore). type: feature New capability or enhancement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for Firestore Enterprise Pipeline Queries

2 participants