# Firestore Pydantic ODM ## Docs - [BaseFirestoreModel — Async Firestore ODM Base Class](https://fpo-python.santosdev.com/api/base-firestore-model.md): Core ODM base class that extends Pydantic BaseModel with async Firestore CRUD, filtering, batch writes, subcollection access, and collection group queries. - [Enums: BatchOperation, FirestoreOperators, OrderByDirection](https://fpo-python.santosdev.com/api/enums.md): Reference for the three enum classes used to express batch operations, query filter operators, and result ordering direction in Firestore Pydantic ODM. - [FirestoreDB — Async Firestore Client Configuration](https://fpo-python.santosdev.com/api/firestore-db.md): Thin wrapper around google-cloud-firestore AsyncClient supporting production, local emulator, and MagicMock configurations for testing. - [FirestoreField: Descriptor for Firestore Query Filters](https://fpo-python.santosdev.com/api/firestore-field.md): API reference for FirestoreField, the Python descriptor that enables type-safe, expressive Firestore query filters directly on model class attributes. - [SubCollectionAccessor — Subcollection Query Helper](https://fpo-python.santosdev.com/api/subcollection-accessor.md): Bound query helper returned by BaseFirestoreModel.subcollection() that scopes all reads and writes to a specific parent document's subcollection. - [Configuring the FirestoreDB Client for Your Application](https://fpo-python.santosdev.com/concepts/database-client.md): Set up FirestoreDB for production, the local emulator, or unit tests, then register your models with init_firestore_odm to enable the full ODM feature set. - [Defining Firestore Models Using Pydantic BaseModel](https://fpo-python.santosdev.com/concepts/models.md): Learn how to define strongly-typed Firestore documents by subclassing BaseFirestoreModel, configuring collection settings, and declaring Pydantic fields. - [Firestore Subcollections and Parent-Child Relationships](https://fpo-python.santosdev.com/concepts/subcollections.md): Model nested Firestore subcollections with Settings.parent, query documents under a specific parent, and cascade-delete entire document hierarchies safely. - [Atomic Batch Write Operations in Firestore Pydantic ODM](https://fpo-python.santosdev.com/guides/batch-operations.md): Execute multiple Firestore create, update, and delete operations atomically in one round-trip using the batch_write() class method. - [Using Field Projections for Efficient Firestore Reads](https://fpo-python.santosdev.com/guides/projections.md): Use plain Pydantic models as field masks to fetch only the columns you need, reducing Firestore bandwidth and keeping response payloads lean. - [How to Query Firestore Documents with Pydantic ODM](https://fpo-python.santosdev.com/guides/querying.md): Learn how to filter, order, paginate, and aggregate Firestore documents using the expressive FirestoreField descriptor API and async generators. - [Testing Firestore Apps Using the Emulator and MagicMocks](https://fpo-python.santosdev.com/guides/testing.md): Run integration tests against the local Firestore emulator or swap the client for a MagicMock to keep unit tests fast and network-free. - [Installing Firestore Pydantic ODM in Python](https://fpo-python.santosdev.com/installation.md): Step-by-step instructions for installing Firestore Pydantic ODM, configuring Google Cloud credentials, and verifying your setup works correctly. - [Firestore Pydantic ODM: Async Python ODM for Firestore](https://fpo-python.santosdev.com/introduction.md): Firestore Pydantic ODM is a lightweight, fully-typed async Object-Document Mapper that combines Pydantic validation with Google Cloud Firestore. - [Get Started with Firestore Pydantic ODM](https://fpo-python.santosdev.com/quickstart.md): Learn how to install Firestore Pydantic ODM, define your first model, connect to Firestore, and perform async CRUD and queries in minutes.