GC

Firestore

NoSQL document design, subcollections, and querying limits

Details

Language / Topic
gcpGoogle Cloud Platform
Category
Architecture

Rules

balanced
- Structure data to minimize reads: duplicate necessary data across documents (denormalization).
- Use batched writes or transactions when updating related documents.
- Structure data around your querying capabilities. Firestore queries are limited to a single inequality filter (`<, >, !=`).
- Denormalize data aggressively to avoid needing server-side joins or cascading read operations.
- Always use Batched Writes or Transactions when mutating multiple documents that must remain consistent.
- Avoid monotonically increasing fields (like timestamps) as document IDs to prevent creating hot-spots in the storage layer.