我正在构建一个flutter应用程序并使用cloud-firestore,这是我的数据库x1c 0d1x的外观
我想要一个函数,检索集合中的所有文档,称为“驱动程序列表”的字符串数组,我已经使用过,但它让他们回到一个新屏幕的列表视图
class DriverList extends StatelessWidget {@overrideWidget build(BuildContext context) {
return new StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('DriverList').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
return new ListView(
children: snapshot.data.documents.map((DocumentSnapshot document) {
return new ListTile(
title: new Text(document['name']),
subtitle: new Text(document['phone']),
);
}).toList(),
);
},
);
}
}
5条答案
按热度按时间nwsw7zdq1#
这有一些额外的逻辑来删除潜在的重复记录,但是您可以使用类似下面的方法从Firestore中检索数据。
我们访问集合引用,然后列出查询结果,然后为Firestore返回的数据创建本地模型对象,然后返回这些模型对象的列表。
图片来源:https://github.com/dazza5000/austin-feeds-me-flutter/blob/master/lib/data/events_repository.dart#L33
l2osamch2#
*获取一次性数据:
*每次更改时获取数据,使用
StreamBuilder
:6ojccjat3#
byqmnocz4#
ruoxqz4g5#
使用
null Safety
更新2023有两种方式:
1.流生成器
当您希望不断听取更改,并希望数据在不进行热重新加载/重新启动的情况下得到更新时
2.未来构建者
当您只想获取文档一次,并且不需要不断地监听文档的更改时。
流生成器
1.多个文档
2.单个文档
未来建筑师
1.多个文档
2.单个文档