Skip to content

FireSchemaStrongly-Typed Firestore ODM

Generate type-safe code for TypeScript, Dart & C# from your Firestore schema. Boost productivity and prevent runtime errors.

Feature Status & Roadmap

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 PlatformStatusSupported SDK¹Test Coverage²Key Features / Notes
TypeScript (Client)✅ Supportedfirebase v9+ (Modular)Unit & Integration (Emulator)Ideal for Web Apps (React, Vue, etc.) & Node.js clients. Full CRUD, Querying, Streaming, Subcollections, Transactions/Batches.
TypeScript (Admin)✅ Supportedfirebase-admin (Node.js)Unit & Integration (Emulator)Ideal for Backends (Node.js, Cloud Functions). Full CRUD, Querying, Subcollections, Transactions/Batches. No Streaming.
Dart (Client)✅ Supportedcloud_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)⏳ PlannedFirestore REST APIN/ATarget: dart-admin-rest (tentative). Addresses lack of official Dart Admin SDK, enabling type-safe backend Dart Firestore access.
C# (Client)✅ SupportedGoogle.Cloud.FirestoreUnit & 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):

  • JSON Schema Definition (timestamp, geopoint, reference, $ref, basic validation)
  • Configuration File (fireschema.config.json)
  • Code Generation CLI (fireschema generate)
  • Type-Safe Data Models (Data, AddData, Nested Types, Enums)
  • Type-Safe Collection References with CRUD (get, add, set, delete)
  • Type-Safe Query Builders (where[Field], orderBy, limit, Cursors, in, array-contains, etc.)
  • Type-Safe Update Builders (set[Field], increment[Field], serverTimestamp, updateRaw for FieldValue)
  • Subcollection Accessors

Notes:

  1. You must install the specified Firebase SDK alongside the corresponding FireSchema runtime package in your project.
  2. Test coverage indicates that automated tests exist for core runtime functionality. See individual runtime guides for more specifics.

For detailed usage, please refer to the specific guides for each runtime target. See the Roadmap page for more details on planned features.

Released under the ISC License.