A Flutter library providing a model framework and utilities for Firebase Firestore, simplifying data operations and structure.
Flamingo is a Flutter library that serves as a model framework for Firebase Firestore. It provides a structured way to define data models, handle CRUD operations, manage real-time listeners, and work with complex data structures like nested objects and sub-collections, reducing the boilerplate typically associated with Firestore integration in Flutter apps.
Flutter developers building mobile applications that use Firebase Firestore as their backend database and want a type-safe, organized approach to data modeling and operations.
Developers choose Flamingo for its comprehensive feature set that simplifies Firestore interactions, including automatic JSON serialization via code generation, built-in pagination, real-time listeners, and support for advanced Firestore features like distributed counters and file storage, all within a Flutter-friendly API.
[Flutter Library] Flamingo is a firebase firestore model framework library. 🐤
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses annotations like @Field and code generation to automate JSON serialization, ensuring compile-time type safety and reducing manual boilerplate, as shown in the User model example.
Provides CollectionPaging and CollectionPagingListener for efficient document retrieval with pagination and real-time updates, simplifying common Firestore patterns like loading and listening to collections.
Supports nested models, sub-collections, maps, lists, and distributed counters through classes like Model and Counter, enabling complex data modeling as demonstrated with Owner and Ranking models.
Includes Storage and StorageFile classes to handle Firebase Storage uploads and deletions, seamlessly linking file metadata to Firestore documents, as detailed in the File section.
Relies on build_runner for code generation, adding an extra build step that can slow development and complicate debugging, especially for larger projects.
Tightly coupled with Firebase Firestore and Storage, making it unsuitable for apps using other databases or requiring broader Firebase service integration beyond these.
The README marks unit testing as 'WIP' (Under construction), indicating that testing utilities are not fully developed or documented, which could hinder robust testing practices.