Note
This extension is currently in beta (pre-v1.0), and may see breaking changes until the first stable release (v1.0).
This Gemini CLI extension provides a set of tools to interact with Firestore databases. It allows you to manage your databases, documents, and collections directly from the Gemini CLI, using natural language prompts.
Learn more about Gemini CLI Extensions.
Important
We Want Your Feedback! Please share your thoughts with us by filling out our feedback form. Your input is invaluable and helps us improve the project for everyone.
- Natural Language Management: Stop wrestling with complex commands. Explore schemas and query data by describing what you want in plain English.
- Seamless Workflow: As a Google-developed extension, it integrates seamlessly into the Gemini CLI environment. No need to constantly switch contexts for common database tasks.
- Code Generation: Accelerate development by asking Gemini to generate data classes and other code snippets based on your table schemas.
Before you begin, ensure you have the following:
- Gemini CLI installed with version +v0.6.0.
- Setup Gemini CLI Authentication.
- A Google Cloud project with the Firestore API enabled.
- Ensure Application Default Credentials are available in your environment.
- IAM Permissions
- Cloud Datastore User (
roles/datastore.user) - Firebase Rules Viewer (
roles/firebaserules.viewer)
- Cloud Datastore User (
To install the extension, use the gemini extensions install command:
gemini extensions install https://github.com/gemini-cli-extensions/firestore-nativeSet the following environment variables before starting the Gemini CLI. These variables can be loaded from a .env file.
export FIRESTORE_PROJECT="<your-gcp-project-id>"
export FIRESTORE_DATABASE="(default)" # OptionalEnsure Application Default Credentials are available in your environment.
To start the Gemini CLI, use the following command:
geminiWarning
Changing Database Connections
Currently, the database connection must be configured before starting the Gemini CLI and can not be changed during a session.
To save and resume conversation history use command: /chat save <tag> and /chat resume <tag>.
Interact with Firestore using natural language right from your IDE:
-
Document and Data Retrieval:
- "Show me the Firestore data for the test users qa_user_123 and qa_user_456 from the users-staging collection."
- "Find all users in the users-staging collection whose wishlist contains product-glasses."
-
Document Updates and Cleanup:
- "For all 20 test users you just found, please remove product-glasses(inactive) from their wishlist."
- "Update the document with ID order-987 in the orders collection to set the status to 'Shipped'."
-
Security Rules Management:
- "new_rules.txt is a new Firestore Security Rule I'm working on for staging. Can you validate it for me?"
- "Show me the active Firestore security rules for this project."
This extension provides a comprehensive set of tools:
add_documents: Use this tool to add documents to a Firestore collection path.get_documents: Use this tool to get multiple documents from Firestore by their paths.list_collections: Use this tool to list Firestore collections for a given parent path.delete_documents: Use this tool to delete multiple documents from Firestore.query_collection: Use this tool to query documents from a collection with filtering, ordering, and limit options.get_rules: Use this tool to retrieve the active Firestore security rules for the current project.update_document: Use this tool to update an existing document in Firestore by its path.validate_rules: Use this tool to validate Firestore security rules syntax and errors.
Find additional extensions to support your entire software development lifecycle at github.com/gemini-cli-extensions.
Use gemini --debug to enable debugging.
Common issues:
- "failed to find default credentials: google: could not find default credentials.": Ensure Application Default Credentials are available in your environment. See Set up Application Default Credentials for more information.
- "✖ Error during discovery for server: MCP error -32000: Connection closed": The database connection has not been established. Ensure your configuration is set via environment variables.
- "✖ MCP ERROR: Error: spawn /Users/USER/.gemini/extensions/firestore-native/toolbox ENOENT": The Toolbox binary did not download correctly. Ensure you are using Gemini CLI v0.6.0+.
- "cannot execute binary file": The Toolbox binary did not download correctly. Ensure the correct binary for your OS/Architecture has been downloaded. See Installing the server for more information.