firebase - Flutter --> Listile 和 Streambuilder
问题描述
class Messages extends StatelessWidget {
const Messages ({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection("messages").snapshots(),
builder: (context, snapshot) {
if (snapshot.hasError) {
return Text("Errror ${snapshot.error}");
}
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
}
return ListView(
children: snapshot.data.documents
.map<Widget>((doc) => ListTile(
title: Text(doc['name']),
subtitle: Text(doc['message']),
))
.toList(),
);
},
);
}
}
大家好,我们可以从firebase中提取数据。我们可以打印到Debugprint。但是当我们尝试使用列表在屏幕上打印时,我们得到一个错误。你能帮助我吗 ?
解决方案
正如错误所说,您需要用小部件包装ListTile
小Material
部件:
children: snapshot.data.documents
.map<Widget>((doc) => Card(child: ListTile(
title: Text(doc['name']),
subtitle: Text(doc['message']),
)))
.toList(),
推荐阅读
- python - 如何修复boto3中不存在用户池********
- laravel - 当我想将 Laravel 项目迁移到我的第二台计算机时,命令提示符中的 Php artisan 迁移会带来错误
- c# - 创建整数定义
- reactjs - React中组件为componentDidMounted时如何获取输入值?
- node.js - 如何从来自 MongoDB 的道具渲染 HTML
- android - DexArchiveBuilderException 与 Firebase 性能监控库,R8 未能脱糖?
- javascript - ENOENT:没有这样的文件或目录,scandir '/Users/kobi.ktk/Desktop/uniexpo/node_modules/@expo/vector-icons/fonts' 构建 JavaScript 包失败
- arrays - 如何在不打印/显示该数组的情况下使用数组的一部分?
- angular - 从 Angular 中停止的地方恢复视频
- matlab - 从函数中提取值