🔥 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.