---
id: gh-firebase-firestore
name: "firebase-firestore"
url: https://skills.yangsir.net/skill/gh-firebase-firestore
author: firebase
domain: cloud-infra
tags: ["firebase", "firestore", "database", "cloud", "management"]
install_count: 133600
rating: 4.80 (120 reviews)
github: https://github.com/firebase/agent-skills/tree/main/skills/firebase-firestore
---

# firebase-firestore

> 这个技能指导用户管理和操作 Firebase Cloud Firestore 数据库。它能帮助用户列出、检测数据库版本、创建新实例，并根据数据库类型提供详细的配置指南，涵盖数据模型、安全规则、SDK 使用和索引管理，确保高效地部署和维护 Firestore 资源。

**Stats**: 133,600 installs · 4.8/5 (120 reviews)

## Before / After 对比

### Firestore 数据库初始化配置效率

**Before**:

在没有明确指导的情况下，手动识别 Firestore 数据库版本、查找对应文档（如安全规则、SDK 使用）并进行配置，通常需要花费大量时间，且容易因版本差异导致配置错误。

**After**:

此技能能自动检测 Firestore 实例版本，并直接引导用户至正确的、版本专属的配置指南。这大幅缩短了 Firestore 数据库的初始化配置时间，并有效减少了因手动查找或误读文档而导致的配置错误。

| Metric | Before | After | Change |
|---|---|---|---|
| 配置时间 | 30分钟 | 5分钟 | -83% |

## Readme

# Cloud Firestore Database and Operations

Before setting up dependencies, writing data models, or configuring security
rules, you MUST always identify the Firestore instance edition.

## 1. Instance Selection and Edition Detection

Run the following command to list current Firestore databases: `bash npx -y
firebase-tools@latest firestore:databases:list`

### A. Instance Found

1.  For each database found, inspect its edition and details: `bash npx -y
    firebase-tools@latest firestore:databases:get <database-id>`
2.  Ask the user which database instance they wish to target or if they would
    prefer to create a new instance.
3.  Once the target instance is established:
    -   If the **`edition`** is `STANDARD`, follow the guides under
        `references/standard/`.
    -   If the **`edition`** is `ENTERPRISE` or native mode, follow the guides
        under `references/enterprise/`.

### B. No Instance Found (or New Requested)

If no databases exist or the user requests a new one, default to provisioning an **Enterprise** edition database
and ask the user what location to use.
Run `npx -y firebase-tools@latest firestore:locations` to get the list of options.
Suggest colocating with other resources if applicable.

Once the location is determined, create the database:
`bash npx -y firebase-tools@latest firestore:databases:create <database-id> --edition="enterprise" --location="<selected-location>"`

Proceed with using the guides under `references/enterprise/`.

--------------------------------------------------------------------------------

## 2. Specialized Guides

Based on the identified or created instance edition, open and read the
corresponding reference guides:

### Standard Edition (`references/standard/`)

-   **Provisioning**: Read [provisioning.md](references/standard/provisioning.md)
-   **Security Rules**: Read [security_rules.md](references/standard/security_rules.md)
-   **SDK Usage**: Read [web_sdk_usage.md](references/standard/web_sdk_usage.md), [android_sdk_usage.md](references/standard/android_sdk_usage.md), [ios_setup.md](references/standard/ios_setup.md), or [flutter_setup.md](references/standard/flutter_setup.md)
-   **Indexes**: Read [indexes.md](references/standard/indexes.md)

### Enterprise Edition / Native Mode (`references/enterprise/`)

-   **Provisioning**: Read [provisioning.md](references/enterprise/provisioning.md)
-   **Data Model**: Read [data_model.md](references/enterprise/data_model.md)
-   **Security Rules**: Read [security_rules.md](references/enterprise/security_rules.md)
-   **SDK Usage**: Read [web_sdk_usage.md](references/enterprise/web_sdk_usage.md), [python_sdk_usage.md](references/enterprise/python_sdk_usage.md), [android_sdk_usage.md](references/enterprise/android_sdk_usage.md), [ios_setup.md](references/enterprise/ios_setup.md), or [flutter_setup.md](references/enterprise/flutter_setup.md)
-   **Indexes**: Read [indexes.md](references/enterprise/indexes.md)


---
*Source: https://skills.yangsir.net/skill/gh-firebase-firestore*
*Markdown mirror: https://skills.yangsir.net/api/skill/gh-firebase-firestore/markdown*