如何在flutter中从firebase数据填充listview
Posted
技术标签:
【中文标题】如何在flutter中从firebase数据填充listview【英文标题】:How to populate listview from firebase data in flutter 【发布时间】:2020-05-06 11:10:16 【问题描述】:您好,我正在尝试从 firebase 实时数据库中获取数据并在颤振中填充列表视图,以下是图像,请在继续之前检查,
Here is the image from firebase 现在我想在颤振应用程序中获取数据并填充列表视图,目前我正在像这样进入终端:
数据:报告人 shivam kapasia:报告人电子邮件:kapasiaashivam007@gmail.com,描述:需要帮助,报告人:shivam kapasia,纬度:28.4725024,时间:下午 5:46,地点:空,日期:周一1 月 20 日,经度:77.506273,
这是我的代码:
final databaseReference = FirebaseDatabase.instance.reference();
void createRecord()
_getCurrentLocation();
databaseReference.child('Reported By ' + user.displayName).set(
'Reported by': user.displayName,
'Reporter Email': user.email,
'Date': formattedDate,
'Time': res,
'Description': '$message',
'longitude': longitude.toString(),
'latitude': latitude.toString(),
'location': '$_currentAddress'
);
void getData()
databaseReference.once().then((DataSnapshot snapshot)
print('Data : $snapshot.value');
);
这两个功能都运行良好。 如果您知道如何根据 firebase 的数据构建 listview 并使用上层函数相应地填充它们,请帮助我,请尝试在代码中提供更有帮助的解决方案。
提前谢谢...
【问题讨论】:
【参考方案1】:您需要为所有这些数据创建一个类,您的createRecord()
函数效率不高。
考虑创建一个类Report
,将所有信息保存到Report
的对象中。
然后,在 Report
中创建一个名为 toJSON()
的函数,它将所有数据转换为 JSON 格式,您可以直接将其传递给 firebase。
同样,您可以创建一个名为Report.fromJSON(Map snapshot)
的命名构造函数,它将从您从数据库获得的快照中为您提供Report
的对象。
现在,您可以创建一个列表 List<Report> reportList;
,其中包含您从 firebase 获取的所有报告。
现在您所要做的就是将其映射为ListView
,如下所示,
ListView(
children: reportList.map((element)return Container();).toList(),
)
在上面的示例中,element
将是Report
的对象,您将能够在Widget
中显示数据,例如Card
或Container
如果您只想显示Record
的一个实例,您可以通过将小部件添加到ListView
来手动执行此操作,
ListView( children: <Widget>[] )
如果您有任何具体的需要帮助,例如设置类和功能发表评论,我很乐意提供帮助。
【讨论】:
以上是关于如何在flutter中从firebase数据填充listview的主要内容,如果未能解决你的问题,请参考以下文章
如何在flutter中从firebase实时数据库中获取数据?
如何在 Flutter 中从 Firebase Auth 获取用户 ID?
如何在 Flutter 中从 firebase 存储读取和写入文本文件?