【问题标题】:How to populate listview from firebase data in flutter如何在flutter中从firebase数据填充listview
【发布时间】: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 并使用上层函数相应地填充它们,请帮助我,请尝试在代码中提供更有帮助的解决方案。

提前谢谢...

【问题讨论】:

    标签: android database firebase flutter firebase-realtime-database


    【解决方案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 中显示数据,例如CardContainer


    如果您只想显示Record 的一个实例,您可以通过将小部件添加到ListView 来手动执行此操作,

    ListView( children: <Widget>[] )
    


    如果您有任何具体的需要帮助,例如设置类和功能发表评论,我很乐意提供帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      相关资源
      最近更新 更多