
Firebase Firestore Enterprise Native Mode
Stand up Firestore Enterprise Native Mode end to end—provision the project, model data, lock rules, and hook up web or Python SDKs.
Overview
Firebase-firestore-enterprise-native-mode is an agent skill most often used in Build (also Ship) that walks solo builders through Firestore Enterprise Native provisioning, data modeling, security rules, SDKs, and indexes
Install
npx skills add https://github.com/firebase/agent-skills --skill firebase-firestore-enterprise-native-modeWhat is this skill?
- End-to-end Enterprise Native Mode guide: provisioning, data model, security rules, SDK usage, indexes
- Splits deep references: provisioning.md, data_model.md, security_rules.md, web_sdk_usage.md, python_sdk_usage.md
- Firebase CLI available via `npx -y firebase-tools@latest` when full CLI is not installed
- Security rules section for deploying protections alongside schema decisions
- Index guidance for slow-query diagnosis and supported query types
- Skill indexes five reference areas: provisioning, data model, security rules, web SDK, Python SDK, plus indexes
- Documents optional Firebase CLI access through npx firebase-tools@latest
Adoption & trust: 35.8k installs on skills.sh; 345 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are adopting Firestore Enterprise Native Mode but lack a ordered path from project setup to safe rules and working client SDKs.
Who is it for?
Indie SaaS or full-stack builders standing up Firestore as the primary datastore with rules and multi-SDK clients.
Skip if: Android-only Gradle bootstrap with no rules or data-model work—use the narrower firebase-firestore Android skill instead.
When should I use this skill?
User needs help setting up Firestore Enterprise Native Mode, writing security rules, organizing data, or using Firestore SDKs in application code.
What do I get? / Deliverables
You follow linked references to provision the database, model data, deploy security rules, and implement web or Python clients with sensible indexes.
- Provisioned Firestore Enterprise Native setup
- Security rules aligned with reference guidance
- SDK integration patterns for web or Python
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Primary shelf is Build backend because provisioning and SDK usage are the core deliverables indie products need first. Backend captures database provisioning, client SDKs, and index design rather than frontend UI polish.
Where it fits
Provision Enterprise Native Firestore and sketch collections before building the API layer.
Wire the web or Python Firestore SDK using the linked usage references.
Author and deploy security rules from security_rules.md before beta users get accounts.
How it compares
Full enterprise native playbook with reference docs—not a one-file CRUD tutorial or generic SQL migration guide.
Common Questions / FAQ
Who is firebase-firestore-enterprise-native-mode for?
Solo builders and small teams using Firebase CLI or npx who need Enterprise Native Mode provisioning, schema guidance, and SDK integration across web or Python.
When should I use firebase-firestore-enterprise-native-mode?
In Build when designing collections and SDK access; in Ship when authoring and deploying security rules before exposing data to users or agents.
Is firebase-firestore-enterprise-native-mode safe to install?
Review the Security Audits panel on this Prism page; the skill covers security rules deployment and production Firebase configuration.
SKILL.md
READMESKILL.md - Firebase Firestore Enterprise Native Mode
# Firestore Enterprise Native Mode This skill provides a complete guide for getting started with Firestore Enterprise Native Mode, including provisioning, data model, security rules, and SDK usage. ## Provisioning To set up Firestore Enterprise Native Mode in your Firebase project and local environment, see [provisioning.md](references/provisioning.md). ## Data Model To learn about Firestore data model and how to organize your data, see [data_model.md](references/data_model.md). ## Security Rules For guidance on writing and deploying Firestore Security Rules to protect your data, see [security_rules.md](references/security_rules.md). ## SDK Usage To learn how to use Firestore Enterprise Native Mode in your application code, see: - [Web SDK Usage](references/web_sdk_usage.md) - [Python SDK Usage](references/python_sdk_usage.md) ## Indexes Indexes help improve query performance and speed up slow queries. For checking index types, query support tables, and best practices, see [indexes.md](references/indexes.md). # Firestore Data Model Reference Firestore is a NoSQL, document-oriented database. Unlike a SQL database, there are no tables or rows. Instead, you store data in **documents**, which are organized into **collections**. ## Document Data Model Data in Firestore is organized into documents, collections, and subcollections. ### Documents A **document** is a lightweight record that contains fields, which map to values. Each document is identified by a name. A document can contain complex nested objects in addition to basic data types like strings, numbers, and booleans. Documents are limited to a maximum size of 1 MiB. Example document (e.g., in a `users` collection): ```json { "first": "Ada", "last": "Lovelace", "born": 1815 } ``` ### Collections Documents live in **collections**, which are containers for your documents. For example, you could have a `users` collection to contain your various users, each represented by a document. * Collections can only contain documents. They cannot directly contain raw fields with values, and they cannot contain other collections. * Documents within a collection can contain different fields. * You don't need to "create" or "delete" collections explicitly. After you create the first document in a collection, the collection exists. If you delete all of the documents in a collection, the collection no longer exists. ### Subcollections Documents can contain subcollections natively. A subcollection is a collection associated with a specific document. For example, a user document in the `users` collection could have a `messages` subcollection containing message documents exclusively for that user. This creates a powerful hierarchical data structure. Data path example: `users/user1/messages/message1` ## Collection Group Support A **collection group** consists of all collections with the same ID. By default, queries retrieve results from a single collection in your database. Use a collection group query to retrieve documents from a collection group instead of from a single collection. ### Use Cases Collection group queries are useful when you want to query across multiple subcollections that share the same organizational structure. For example, imagine an app with a `landmarks` collection where each landmark has a `reviews` subcollection. If you want to find all 5-star reviews across *all* landmarks, it would involve checking many separate `reviews` subcollections.