Skip to content

Conversation

@fredzqm
Copy link
Contributor

@fredzqm fredzqm commented Aug 17, 2025

Spark project

firebase init dataconnect

Screenshot 2025-08-19 at 4 52 25 PM

Blaze project

firebase init dataconnect

Screenshot 2025-08-19 at 4 51 08 PM

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

Summary of Changes

Hello @fredzqm, 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 upgrades the firebase init dataconnect command by integrating Google Gemini, enabling users to generate Data Connect schemas and connector operations simply by describing their application. The changes also include a comprehensive refactoring of the Data Connect initialization process, streamlining API enablement and Cloud SQL provisioning. This enhancement aims to provide a more intuitive and automated setup experience for Firebase Data Connect users.

Highlights

  • Gemini Integration for Data Connect Initialization: The firebase init dataconnect command now leverages Google Gemini to automatically generate Data Connect schemas and connector operations based on a natural language description of the user's application.
  • Streamlined Initialization Flow: The internal flow for initializing Data Connect services has been significantly streamlined, including refactored API enablement checks and a simplified Cloud SQL provisioning process.
  • Improved Type Definitions and Null-Safety: The PostgreSql interface in Data Connect types now allows database and cloudSql properties to be optional, improving flexibility and null-safety across the codebase.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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

Copy link
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 a significant enhancement to firebase init dataconnect by integrating Gemini for schema and connector generation. The changes are extensive and well-structured, refactoring the initialization flow and types to support this new capability. The overall direction is excellent and promises to greatly improve the developer experience.

I have identified a couple of areas for improvement: a potential logic issue in error handling for pre-existing services and a minor user-facing text issue in a spinner message. Addressing these will help ensure the new flow is robust and clear for users.

fredzqm and others added 6 commits August 17, 2025 13:18
The `init dataconnect` actuation tests were failing due to a change
in the provisioning logic. The tests expected Cloud SQL provisioning
to be skipped in some cases, but the new logic always provisions
Cloud SQL when a project has billing enabled.

This change updates the tests to reflect the new behavior by
changing `expectCSQLProvisioning` from `false` to `true` in the
affected test cases.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
@fredzqm fredzqm changed the base branch from master to fz/fdc-init August 18, 2025 01:12
@fredzqm fredzqm marked this pull request as draft August 18, 2025 01:13
Base automatically changed from fz/fdc-init to master August 18, 2025 19:19
@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 16.79389% with 109 lines in your changes missing coverage. Please review.
✅ Project coverage is 49.20%. Comparing base (ecbbc91) to head (b8dd8ed).
⚠️ Report is 15 commits behind head on master.

Files with missing lines Patch % Lines
src/init/features/dataconnect/index.ts 17.85% 85 Missing and 7 partials ⚠️
src/dataconnect/client.ts 0.00% 7 Missing ⚠️
src/dataconnect/freeTrial.ts 0.00% 5 Missing ⚠️
src/dataconnect/provisionCloudSql.ts 0.00% 2 Missing ⚠️
src/gemini/fdcExperience.ts 50.00% 2 Missing ⚠️
src/mcp/tools/core/init.ts 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8988      +/-   ##
==========================================
- Coverage   50.93%   49.20%   -1.73%     
==========================================
  Files         510      670     +160     
  Lines       33396    38361    +4965     
  Branches     6934     7646     +712     
==========================================
+ Hits        17011    18877    +1866     
- Misses      14886    17957    +3071     
- Partials     1499     1527      +28     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fredzqm fredzqm marked this pull request as ready for review August 19, 2025 21:55
"Create 4 operations for an app using the instance schema with proper authentication.";

export const PROMPT_GENERATE_SEED_DATA =
"Create a mutation to populate the database with some seed data.";
Copy link
Member

Choose a reason for hiding this comment

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

Non blocking - should we workshop this prompt? Do we want to specify how much data?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Any suggestions? Maybe Gemini can figure it out on its own 😄

@fredzqm fredzqm enabled auto-merge (squash) August 19, 2025 23:54
@fredzqm fredzqm disabled auto-merge August 19, 2025 23:57
@fredzqm fredzqm enabled auto-merge (squash) August 20, 2025 00:05
@fredzqm fredzqm merged commit 3a663a1 into master Aug 20, 2025
48 checks passed
@fredzqm fredzqm deleted the fz/fdc-init-gemini branch August 20, 2025 00:17
@github-project-automation github-project-automation bot moved this from Approved [PR] to Done in [Cloud] Extensions + Functions Aug 20, 2025
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