簡體   English   中英

無法將 firebase 數據檢索到 Listview

[英]Unable to retrieve firebase data to Listview

我正在嘗試將實時 firebase 中的數據檢索到列表視圖中。

Firebase Json 樹: 在此處輸入圖像描述

我想以列表視圖格式檢索項目、到期日期和數量。

我的代碼如下:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM