Skip to content

feat: support for Firestore Pipelines#18183

Open
SelaseKay wants to merge 8 commits intomainfrom
feat/firestore-pipelines
Open

feat: support for Firestore Pipelines#18183
SelaseKay wants to merge 8 commits intomainfrom
feat/firestore-pipelines

Conversation

@SelaseKay
Copy link
Copy Markdown
Contributor

Description

Replace this paragraph with a description of what this PR is doing. If you're modifying existing behavior, describe the existing behavior, how this PR is changing it, and what motivated the change.

Related Issues

Replace this paragraph with a list of issues related to this PR from the issue database. Indicate, which of these issues are resolved or fixed by this PR. Note that you'll have to prefix the issue numbers with flutter/flutter#.

Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
  • All existing and new tests are passing.
  • I updated/added relevant documentation (doc comments with ///).
  • The analyzer (melos run analyze) does not report any problems on my PR.
  • I read and followed the Flutter Style Guide.
  • I signed the CLA.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change.
  • No, this is not a breaking change.

SelaseKay and others added 2 commits April 10, 2026 08:06
* feat(firestore): introduce pipeline functionality (Dart API)

* fix

* fix: restore unrelated regressions in settings, changelog, pubspec and exports

Made-with: Cursor

* fix

* chore: fix formatting

* chore: add pipeline stages tests nd fix bugs

* chore: remove unnecessary parentheses in pipeline stage tests

* test: add aggregate stage serialization tests for pipeline stages

* test: add unit tests for pipeline expressions, ordering, sampling, and snapshot handling

* chore: improve formatting and readability in pipeline test files

* chore: update docs for PipelineSnapshot and PipelineResult

* chore: fix ci

* test: add serialization tests for arrayContainsAll and related expressions in pipeline expressions

* feat: add arrayContainsAll expressions for enhanced array handling in pipeline expressions

* refactor: remove PipelineFilter

* fix: update arrayConcat method to accept Object? and convert to Expression

* chore: remove unsupported expressions

* chore: add timestamp unit validation and enhance timestamp expression methods

* refactor: rename replace methods to stringReplaceAll

* refactor: update test for stringReplaceAll serialization

* chore: fix ci

* chore: fix ci

* docs: add documentation with examples for pipeline functions

* chore: add pipeline_example Flutter project and integration tests

* refactor: improve code formatting and add new execute options tests

* fix ci

* chore: add pipeline e2e test workflow and script for cloud_firestore

* refactor: remove commented-out button for stringReplaceAll in pipeline example

* chore: update e2e tests pipeline to include additional branches for triggering

* chore: add test comment in pipeline example for clarity

* chore: rename e2e pipeline and add iOS testing steps with Firebase configuration

* test ci

* chore: add workflow_dispatch trigger to e2e tests pipeline

* chore: remove Firebase options condition from e2e tests pipeline jobs

* chore: update e2e tests pipeline to run on macOS and implement flutter drive for integration tests

* chore: update cloud_firestore dependency to use local path in pipeline example

* chore: add dependency overrides for local development in cloud_firestore pipeline example

* chore: update analysis options and refactor integration tests

* refactor: improve formatting

* fix ci

* chore: remove Linux pipeline example files and associated configurations

* chore: refine e2e tests pipeline triggers and enhance iOS project setup for Swift Package Manager

* chore: add branch trigger for firestore-pipelines-ios in e2e tests pipeline

* chore: update minimum target version for iOS to 15

* chore: add iOS and macOS paths to e2e tests pipeline triggers

* refactor: improve code formatting in pipeline integration tests

* chore: add branch triggers for Android and Web in e2e tests pipeline

* fix formatting

* trigger CI

* chore: add more expression tests

* chore: add more tests

* fix ci

* chore: include web package in e2e tests pipeline

* chore: remove support for mapFromPairs(not supported on sdks)

* chore: remove support for arraySlice(not supported on SDKs)

* chore: remove arraySlice and _ArraySliceExpression due to SDK incompatibility

* feat(firestore, android): Android implementation for Pipeline APIs (#18098)

* feat(firestore): Android implementation for Pipeline APIs

* refactor: improve handling of timestamps and array expressions in pipeline

* chore: add support for more Expression functions in Android

* chore: remove unsupported 'replace' expression from Android Firestore pipeline API

* chore: enhance PipelineParser to support execute options for Firestore pipelines

* chore: remove commented-out button for stringReplaceAll in pipeline example

* trigger CI

* trigger CI

* trigger CI

* refactor: enhance expression parsing logic in ExpressionParsers

* feat(firestore, web): Web implementation for Pipeline APIs (#18100)

* feat(firestore): Web implementation for Pipeline APIs

* chore: fix ci

* chore: inject firestore pipelines script for web

* chore: add comments for Firestore Pipelines script injection in web implementation

* refactor: remove unecessary comment

* chore: add support for missing Expressions and fix bugs

* chore: fix ci

* feat: enhance pipeline expression handling with new expressions and error handling

* refactor: rename 'replace' case to 'string_replace_all' in pipeline expression parser

* chore: update Pipeline execution to accept options for index mode

* fix: resolve failing mapGet test on web

* fix: correctly parse 'not' expression arguments

* trigger CI

* fix tests

* fix tests

* fix: update type casting for boolean expression in PipelineExpressionParserWeb

* fix ci

* feat(firestore, iOS): iOS implementation for Pipeline APIs (#18099)

* feat(firestore): iOS implementation for Pipeline APIs

* fix: conditionally import FIRPipelineBridge.h for iOS

* chore: add macOS support for FLTPipelineParser by linking to iOS implementation

* fix: conditionally include FIRPipelineBridge.h for macOS support in FLTPipelineParser

* chore: add support for missing Expression function

* refactor: clean up formatting in FLTPipelineParser.m for improved readability

* chore: enhance FLTPipelineParser with support for array and map expressions, ensuring proper argument handling

* chore: implement conditional expression and current timestamp handling in FLTPipelineParser

* chore: add 'find_nearest' stage support in FLTPipelineParser with validation for vector_field, vector_value, and distance_measure

* chore: introduce FLTFirebaseFirestoreErrorCodePipelineParse for improved error handling in pipeline parsing

* trigger CI

* fix: update header inclusion logic for FirebaseFirestore in FLTPipelineParser.m

* trigger CI

* chore: enhance FLTPipelineParser with new expression handling

* chore: update e2e tests pipeline to ignore specific paths for pull requests and pushes

* chore: add new aggregate functions and expression methods

* fix: update end-to-end test to conditionally skip based on platform

* chore: fix ci

* chore: fix ci

* feat: add new pipeline expressions for regex, string manipulation, and aggregation

* fix ci

* fix: add conditional import for FIRVectorValue to FLTPipelineParser.m

* fix: update argument passing in PipelineExpressionParserWeb for type expression

* refactor: update type handling in pipeline expressions to use enum Type for better clarity and consistency

* fix ci
…rfire into feat/firestore-pipelines

merge remote
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants