搜索插件、代码仓与 APP 分类

插件详情v1.0.0-dev.88

cloud_firestore_odm

Firebase Cloud Firestore (cloud_firestore) 的对象数据映射器。

AndroidiOSWebmacOSWindows
近 30 天下载
1750
喜欢数
112
Pub 分数
140

安装插件

flutter pub add cloud_firestore_odm

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个轻量级的对象文档映射器(ODM),用于 Firebase Cloud Firestore,简化了 Flutter 应用中的数据建模和 CRUD 操作。它提供了一个简洁、类型安全的接口,将 Dart 类映射到 Firestore 文档,减少样板代码并提高开发效率。该包与官方 cloud_firestore SDK 无缝集成,可轻松实现本地对象与远程 Firestore 集合之间的同步。专为希望在不牺牲灵活性或性能的前提下实现结构化数据处理的开发者设计。

适合场景

  • 将 Dart 类映射到 Firestore 文档
  • 简化 CRUD 操作
  • 构建可扩展的应用程序数据模型
  • 减少 Firestore 交互中的样板代码
  • 启用类型安全的数据访问

主要特点

  • 自动文档到对象映射
  • 类型安全的数据建模
  • 最小的样板代码
  • 与 cloud_firestore 的无缝集成
  • 对嵌套对象和集合的支持

适合对象

  • 使用 Firebase Cloud Firestore 的 Flutter 应用
  • 寻求结构化数据管理的开发人员
  • 需要可维护的数据层设计的项目
  • 注重代码可读性和一致性的团队
  • 具有复杂数据模型的应用程序

使用建议

  • 需要理解 Firestore 数据结构
  • 仅限 Firestore 特定用例
  • 可能为简单数据需求增加轻微开销
  • 依赖 cloud_firestore SDK 版本兼容性

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Cloud Firestore ODM Package for Flutter

pub package

The Cloud Firestore ODM package enables developers to build fully type-safe applications for Flutter using the FlutterFire Cloud Firestore plugin.

The Cloud Firestore ODM is currently in alpha. Expect breaking changes, API changes and more. The documentation is still a work in progress. See the discussion for more details.

What is an ODM?

The Object Document Mapper or ODM is an interface that treats a document as a tree structure wherein each node is an object representing a part of the document.
ODM methods allow programmatic access to the tree making it possible to change the structure, style or content of a document.

What does it do?

The Cloud Firestore ODM package enables developers to build fully type-safe applications for Flutter using the FlutterFire Cloud Firestore plugin.

The ODM allows data schemas to be defined which represent the data structure of your Cloud Firestore database. By defining schemas the ODM provides the following benefits:

  • ↔️ Bi-directional data validation.
  • 🔒 Type-safe data querying, supporting all Firestore query operations.
  • 🔄 Flutter Widgets for simple data binding with your data.
  • 🎯 Data selectors to help avoid unnecessary Widget rebuilds.
  • 💻 Full API code completion.

Installation

1. Use a recent Dart version

The ODM relies on a recent Dart feature: generic annotations.
As such, to use the ODM you will need to upgrade your Dart SDK to enable this feature.

That is done by adding the following to your pubspec.yaml:

environment:
  sdk: ">=2.18.0 <4.0.0"
2. FlutterFire Initialization

Before getting started, Add Firebase to your Flutter app.

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}
3. Install cloud_firestore plugin

The ODM depends on the cloud_firestore plugin, so first ensure you have it installed on your project.

4. Install dependency

To install the ODM, you'll need to install both the cloud_firestore_odm and json_annotation packages from pub:

flutter pub add cloud_firestore_odm
flutter pub add json_annotation

Next, install the build_runner, cloud_firestore_odm_generator & json_serializable packages as development dependencies:

flutter pub add --dev build_runner
flutter pub add --dev cloud_firestore_odm_generator
flutter pub add --dev json_serializable

5. Enable create_field_map and create_per_field_to_json of json_serializable

For the ODM to work, it is necessary to enable the create_field_map and create_per_field_to_json of json_serializable.
This can be done by creating a build.yaml file next to your pubspec.yaml and paste the following:

targets:
  $default:
    builders:
      json_serializable:
        options:
          create_field_map: true
          create_per_field_to_json: true

This will enable create_field_map and create_per_field_to_json for the entire project.

Alternatively, you can enable the option on a per-model basis using json_annotation's @JsonSerializable object:

@JsonSerializable(createFieldMap: true, createPerFieldToJson: true)
@Collection<Model>(...)
class MyModel {...}

Next Steps

Once installed, read the documentation on defining models.

Issues and feedback

Please file FlutterFire specific issues, bugs, or feature requests in our issue tracker.

Plugin issues that are not specific to FlutterFire can be filed in the Flutter issue tracker.

To contribute a change to this plugin, please review our contribution guide and open a pull request.

所属分类

依赖

依赖清单 3 项

源码仓库

使用此插件的项目

暂无相关数据。