[英]Unable to retrieve firebase data to Listview
我正在嘗試將實時 firebase 中的數據檢索到列表視圖中。
我想以列表視圖格式檢索項目、到期日期和數量。
我的代碼如下:
var lists = [];
final database = FirebaseDatabase(
databaseURL: "https://trackkit-a5cf3-default-rtdb.asia-southeast1.firebasedatabase.app")
.reference()
.child('Location 1');
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: StreamBuilder(
stream: database.onValue,
builder: (context, AsyncSnapshot<Event> snapshot) {
if (snapshot.hasData && !snapshot.hasError &&
snapshot.data!.snapshot.value != null) {
print("Error on the way");
lists.clear();
DataSnapshot dataValues = snapshot.data!.snapshot;
Map<dynamic, dynamic> values = dataValues.value;
values.forEach((key, values) {
lists.add(values);
});
return ListView.builder(
shrinkWrap: true,
itemCount: lists.length,
itemBuilder: (BuildContext context, int index) {
return Card(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("Item: " + lists[index]["Item"]),
Text("Expiry Date: " + lists[index]["Expiry Date"]),
Text("Quantity: " + lists[index]["Quantity"]),
],
),
);
},
);
}
return Container(child: Text("Add Items"));
},
),
),
);
}
當前屏幕顯示:類型“int”不是類型“String”的子類型
我已經試了好幾天了。 任何幫助將不勝感激。
也許您得到 Integer 值作為對lists[index]["Quantity"]
的回報。 你不能在不轉換為字符串的情況下將 integer 與字符串連接。
因此,請將方法toString()
與lists[index]["Quantity"]
一起使用以使其正常工作。
您必須為Quantity
創建一個 String 值,在 Text Widget 中對其使用toString()
方法,如下所示: Text("Quantity: " + lists[index]["Quantity"].toString())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.