Skip to content

feat(firestore): variable() and arrayFilter() API features for pipelines#9017

Open
russellwheatley wants to merge 6 commits into
mainfrom
pipelines-variable-arrayFilter
Open

feat(firestore): variable() and arrayFilter() API features for pipelines#9017
russellwheatley wants to merge 6 commits into
mainfrom
pipelines-variable-arrayFilter

Conversation

@russellwheatley
Copy link
Copy Markdown
Member

@russellwheatley russellwheatley commented May 12, 2026

Description

  • Added Firestore Pipelines arrayFilter API support in the JS pipeline builder and public exports.
  • Implemented variable() expression support across TypeScript, web/macOS reconstruction, Android lowering, and iOS lowering.
  • Updated unit, web, E2E, and type coverage so arrayFilter predicates reference alias-bound variables correctly.
  • Updated Firestore Pipelines compare-types config now that arrayFilter and variable are implemented.

Related issues

Release Summary

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • Yes
  • My change supports the following platforms;
    • Android
    • iOS
    • Other (macOS, web)
  • My change includes tests;
    • e2e tests added or updated in packages/\*\*/e2e
    • jest tests added or updated in packages/\*\*/__tests__
  • I have updated TypeScript types that are affected by my change.
  • This is a breaking change;
    • Yes
    • No

Test Plan


Think react-native-firebase is great? Please consider supporting the project with any of the below:

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request expands the Firestore pipeline capabilities by adding support for variable expressions and array filtering. These additions allow developers to perform more advanced queries and data transformations directly within pipelines. The changes include updates to the core library, native bridge implementations for both Android and iOS, and updated type definitions to support the new API surface.

Highlights

  • New API Features: Introduced variable() and arrayFilter API features for Firestore pipelines, enabling more complex data manipulation.
  • Cross-Platform Implementation: Implemented support for these new features across TypeScript, Android (Java), and iOS (Swift) to ensure consistent behavior.
  • Testing and Validation: Added comprehensive unit, type, and end-to-end tests to verify the new pipeline operations and serialization logic.
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
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the 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 counterproductive. 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.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces support for variable expressions and the arrayFilter function within Firestore pipelines across Android, iOS, and Web platforms. The changes include updates to the serialization and parsing logic in native code, the addition of new TypeScript interfaces and helper functions, and comprehensive testing including unit, type, and E2E tests. A review comment suggests refining the return type of the variable function to VariableExpression to enhance type safety and maintain consistency with the Firebase JS SDK.

Comment thread packages/firestore/lib/pipelines/expressions.ts
@russellwheatley russellwheatley marked this pull request as ready for review May 12, 2026 13:15
@russellwheatley russellwheatley changed the title feat(firestore): variable() and arrayFilter API features for pipelines feat(firestore): variable() and arrayFilter() API features for pipelines May 12, 2026
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.

1 participant