🔥 Schema-Driven Generation
Define your Firestore structure once using JSON Schema and generate consistent code for multiple platforms.
Generate type-safe code for TypeScript, Dart & C# from your Firestore schema. Boost productivity and prevent runtime errors.
FireSchema aims to provide a robust, type-safe interface for Firestore across multiple platforms. Here's a snapshot of current support and future plans:
Target Platform | Status | Supported SDK¹ | Test Coverage² | Key Features / Notes |
---|---|---|---|---|
TypeScript (Client) | ✅ Supported | firebase v9+ (Modular) | Unit & Integration (Emulator) | Ideal for Web Apps (React, Vue, etc.) & Node.js clients. Full CRUD, Querying, Streaming, Subcollections, Transactions/Batches. |
TypeScript (Admin) | ✅ Supported | firebase-admin (Node.js) | Unit & Integration (Emulator) | Ideal for Backends (Node.js, Cloud Functions). Full CRUD, Querying, Subcollections, Transactions/Batches. No Streaming. |
Dart (Client) | ✅ Supported | cloud_firestore (Flutter) | Unit (Fake) & Integration (Emulator) | Ideal for Flutter Apps & Dart clients. Full CRUD, Querying, Streaming, Subcollections, Transactions/Batches. Includes serverTimestamp handling on add . |
Dart (Admin/Server) | ⏳ Planned | Firestore REST API | N/A | Target: dart-admin-rest (tentative). Addresses lack of official Dart Admin SDK, enabling type-safe backend Dart Firestore access. |
C# (Client) | ✅ Supported | Google.Cloud.Firestore | Unit & Integration (Emulator) | Target: csharp-client . For .NET applications (ASP.NET Core, MAUI, Blazor, Unity via .NET Standard 2.1). Full CRUD, Querying, Updates. |
Core Features (Supported across all current runtimes):
timestamp
, geopoint
, reference
, $ref
, basic validation)fireschema.config.json
)fireschema generate
)Data
, AddData
, Nested Types, Enums)get
, add
, set
, delete
)where[Field]
, orderBy
, limit
, Cursors, in
, array-contains
, etc.)set[Field]
, increment[Field]
, serverTimestamp
, updateRaw
for FieldValue
)Notes:
For detailed usage, please refer to the specific guides for each runtime target. See the Roadmap page for more details on planned features.