[英]How to populate listview from firebase data in flutter
嗨,我正在嘗試從 firebase 實時數據庫獲取數據並在 flutter 中填充列表視圖,以下是圖像,請在繼續之前檢查,
這是來自firebase的圖像現在我想在flutter應用程序中獲取數據並填充列表視圖,目前我正在進入這樣的終端:
數據:{Shivam kapasia 報道:{Reporter Email:kapasiashivam007@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 的數據構建列表視圖並使用上層函數相應地填充它們,請幫助我,請嘗試在代碼中提供更有用的解決方案。
提前致謝...
您需要為所有這些數據創建一個類,您的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
一個實例,您可以通過將 Widgets 添加到ListView
來手動完成,
ListView( children: <Widget>[] )
如果您有任何具體需要幫助,例如設置課程和功能,請發表評論,我很樂意提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.