Flutter Firebase Firestore类型化数据访问插件typed_firestore的使用
Flutter Firebase Firestore类型化数据访问插件typed_firestore的使用
typed_firestore
是一个用于在 Flutter 应用程序中简化与 Firebase Firestore 交互的插件。它通过类型化的方式提供了对 Firestore 数据的访问,使得开发者能够更方便地处理数据。
使用说明
首先,我们需要定义一个类来表示 Firestore 中的数据模型。以下是一个 Car
类的示例:
// 导入必要的库
import 'package:built_collection/built_collection.dart';
import 'package:built_value/serializer.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:typed_firestore/typed_firestore.dart';
// 定义Car类
abstract class Car extends DocData implements Built<Car, CarBuilder> {
// 获取序列化器
static Serializer<Car> get serializer => _$carSerializer;
// 定义Car类的属性
String get title;
// 可选字段
@nullable
String get nullableField;
// 构造函数
Car._();
// 工厂构造函数
factory Car([updates(CarBuilder b)]) = _$Car;
}
// 定义序列化器
@SerializersFor(const [
Car,
])
Serializers serializers = _$serializers;
接下来,我们需要初始化 TypedFirestore
实例,并创建一个集合引用:
// 初始化TypedFirestore实例
final firestore = new TypedFirestore(
Firestore.instance,
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build(),
);
// 创建Car集合引用
final CollRef<Car> cars = firestore.collection<Car>('cars');
增加数据
要向集合中添加一个新的文档,可以使用 add
方法:
// 创建一个新的Car对象
Car newCar = Car((b) => b
..title = "Tesla Model S"
..nullableField = "Optional Field"
);
// 将新的Car对象添加到cars集合中
cars.add(newCar);
查询数据
查询集合中的数据可以通过 get
方法实现:
// 获取cars集合中的所有文档
cars.get().then((querySnapshot) {
querySnapshot.docs.forEach((doc) {
print(doc.data.title); // 打印每个文档的title字段
});
});
更新数据
更新集合中的数据可以通过 update
方法实现:
// 获取特定文档的引用
DocumentReference docRef = cars.doc("someDocumentId");
// 更新文档
docRef.update({
'title': 'Updated Tesla Model S'
}).then((_) {
print("Document successfully updated!");
});
删除数据
删除集合中的数据可以通过 delete
方法实现:
// 获取特定文档的引用
DocumentReference docRef = cars.doc("someDocumentId");
// 删除文档
docRef.delete().then((_) {
print("Document successfully deleted!");
});
更多关于Flutter Firebase Firestore类型化数据访问插件typed_firestore的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复