Skip to content

feat: Support DataAccessModes and RealtimeUpdates modes for Firestore.#9817

Closed
NickChittle wants to merge 10 commits intofirebase:mainfrom
NickChittle:data-access-modes
Closed

feat: Support DataAccessModes and RealtimeUpdates modes for Firestore.#9817
NickChittle wants to merge 10 commits intofirebase:mainfrom
NickChittle:data-access-modes

Conversation

@NickChittle
Copy link
Copy Markdown
Contributor

@NickChittle NickChittle commented Jan 27, 2026

Description

Adding support for the firestore_data_access_mode, mongodb_compatible_data_access_mode, and realtime_updates_mode Database Creation Parameters.

Scenarios Tested

Creating databases with all combinations of ENABLE/DISABLED for firestoreDataAccess and mongodbCompatibleDataAccess.

realtimeUpdates can be ENABLED/DISABLED with firestoreDataAccess.
realtimeUpdates correctly fails when trying to enable with mongodbCompatibleDataAccess

Sample Commands

firebase firestore:databases:create my-database-id --location=nam5 --edition=enterprise --project=my-project --firestore-data-access=ENABLED

firebase firestore:databases:create my-database-id --location=nam5 --edition=enterprise --project=my-project --firestore-data-access=ENABLED --realtime-updates=DISABLED

firebase firestore:databases:create my-database-id --location=nam5 --edition=enterprise --project=my-project --mongodb-compatible-data-access=ENABLED

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @NickChittle, 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 significantly enhances the firestore:databases:create command by introducing new parameters that provide granular control over Firestore database configurations. Users can now specify data access modes (Firestore Native or MongoDB compatible) and real-time update settings directly via the CLI, particularly benefiting Enterprise edition databases with more tailored setup options. The changes ensure proper validation, defaulting, and API integration for these new features.

Highlights

  • New CLI Options for Firestore Database Creation: Introduced three new command-line options for firestore:databases:create: --realtime-updates, --firestore-data-access, and --mongodb-compatible-data-access. These options allow users to specify advanced configurations for their Firestore databases.
  • Support for Data Access Modes: Added support for firestoreDataAccessMode and mongodbCompatibleDataAccessMode, enabling users to control which API (Firestore Native or MongoDB compatible) can be used to access their database. Default logic is implemented to ensure only one is enabled by default for Enterprise edition databases if not explicitly specified.
  • Support for Realtime Updates Mode: Implemented the realtimeUpdatesMode option, allowing users to enable or disable real-time updates for their Firestore databases. For Enterprise edition, if firestoreDataAccessMode is enabled and realtimeUpdatesMode is not specified, it defaults to ENABLED.
  • API and Type Definition Updates: Updated internal API types (api-types.ts) and the Firestore API client (api.ts) to accommodate the new RealtimeUpdatesMode and DataAccessMode enums and their corresponding properties in database creation requests and responses.
  • Comprehensive Test Coverage: Added extensive unit tests to firestore-databases-create.spec.ts to validate the correct parsing, defaulting, and API interaction for all combinations of the new data access and real-time update modes, including scenarios where invalid values are provided.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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 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.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

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.

@NickChittle NickChittle requested a review from joehan January 27, 2026 19:58
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 adds support for DataAccessModes and RealtimeUpdates modes when creating a Firestore database. The changes are well-implemented across the command, API types, and API client. My review focuses on improving code quality by reducing duplication in both the command implementation and its tests, and enhancing the consistency of the new command-line options.

Copy link
Copy Markdown
Member

@joehan joehan left a comment

Choose a reason for hiding this comment

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

This mostly looks good to me. The comments on how we handle these flags for standard edition dbs are blocking, the type improvements are optional nits.

Also, please add a CHANGELOG entry

@NickChittle NickChittle deleted the data-access-modes branch January 30, 2026 18:13
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.

3 participants