firebase - 在颤动中显示屏幕列表中的数据的方法是什么?
问题描述
我将来自 firestore 实例的一些数据存储在一个列表中,现在我想在我的屏幕上显示这些数据。
当我在终端打印我的列表时,我看到了这个:
I/flutter (11351): [{num: 100, title: This is test 2}]
我定义了一个这样的列表:
var list = new List();
我正在单击按钮获取数据。
RaisedButton(
onPressed: () async {
var documentReference = await Firestore.instance.collection('insults').document('vv4YjpyRFFEknbCyC9o7');
documentReference.get().then((documentSnapshot){
setState(() {
list.add(documentSnapshot.data);
});
print(list);
}) ;
},
child: Text('Press me'),
),
请指导我一点。我刚开始学习flutter。
我不想遍历文档,但我想使用合适的方法将其存储在列表中。
解决方案
不需要显示列表,因为您只是在一个文档下检索数据,如果您想显示检索到的数据,那么您可以执行以下操作:
首先在你的下面创建一个实例变量State
:
Map<String, dynamic> retrievedData = Map<String, dynamic>();
然后在内部setState
将数据分配给retrievedData
:
RaisedButton(
onPressed: () async {
var documentReference = await Firestore.instance.collection('insults').document('vv4YjpyRFFEknbCyC9o7');
documentReference.get().then((documentSnapshot){
setState(() {
retrieveData = documentSnapshot.data;
});
}) ;
},
child: Text('Press me'),
),
在该build
方法中,您可以Column
使用多个children
例如:
children: <Widget>[
Text(
retrievedData["title"] ?? "",
),
Text(
retrievedData["num"] ?? "",
),
],
单击按钮时,setState
将调用 build 方法,您的数据将显示在屏幕上。
推荐阅读
- java - KeycloakWebSecurityConfigurerAdapter 和 JBoss stadalon.xml
- vue.js - 修复第一列时vue可拖动问题我无法移动列
- javascript - 浏览器中的文本区域列大小不一致
- php - laravel 文件上传 - “”文件不存在或不可读
- python - 如何从另一个屏幕类调用 Python 中的函数?
- excel - excel公式 - 查找和替换字符串的其余部分
- html - (Swift) 为什么 webView 从不显示我的本地图像?
- selenium - Android 模拟器在测试运行期间崩溃
- cmake - boost bjam 作为 cmake 外部项目失败
- node.js - 如何用 node js express 响应 xml?