我最近开始使用Flutter和Firebase。到目前为止,我已经创建了一个表单页面来读取用户输入并将其上传到Firebase Realtime DB。但是,我不知道从DB中获取数据并在Widget中显示的最佳方法。
到目前为止,我可以做一些如下的工作:
x1c 0d1x的数据
为了实现这一点,我使用下面的函数将数据提取到一个列表中,然后打印该列表。
void readData() {
ref.child("").onValue.listen((event) {
DataSnapshot snapshot = event.snapshot;
if (snapshot.value != null) {
dataList.clear();
if (snapshot.value is Map) {
(snapshot.value as Map).forEach((key, value) {
dataList.add("$key: $value");
});
setState(() {
});
}
} else {
print("No data available.");
}
});
字符串
这给了我正确的数据,但它根本没有组织,并在一个适当的小部件。我想做的是创建一个单独的小部件为每个条目从数据库和没有的ID-“Nmc 6 zn**"。
另外,我使用ListView Builder实现上述功能。
child: ListView.builder(
itemCount: dataList.length,
itemBuilder: (context, index) {
return Column(
children: [
ListTile(
title: Text(
dataList[index],
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 16.0,
),
),
),
Divider(
thickness: 1.0,
color: Colors.grey[300],
),
],
);
},
),
型
1条答案
按热度按时间qcbq4gxm1#
我将分三步回答你的问题:
1:
..然而,我不知道从DB中获取数据并在Widget中显示的最佳方法。
实现此目的的一种方法是创建数据的自定义模型表示,就像它在Firestore中显示的那样。例如:
字符串
2:
.我想做的是从数据库中为每个条目创建一个单独的小部件,并且没有ID-“Nmc 6 zn**"。
只需创建一个sperate小部件,并传入上面创建的模型:
型
3:
示例用法:
型
下面是一个完整的可运行示例,(我使用的是StreamBuilder而不是你的
readData
方法)在IDE中查看它以获得更好的理解:型