0

我在 Firebase 数据库中有一张这样的地图,'abc@gmail.com':{ food order }

我想创建一个此数据流以在下新订单时更新小部件。我尝试使用下面的代码,但它给出了错误。 DocumentSnapshot 没有实例获取器“长度”

StreamBuilder(
        stream: Firestore.instance.collection('admin').document('current-orders').snapshots(),
        builder: (context, snapshot) {
          return snapshot.hasData?Column(
            children: <Widget>[
              Expanded(
                child: Container(
                  child: Padding(
                    padding: EdgeInsets.all(10),
                    child: ListView.builder(
                      itemCount: snapshot.data.length,
                      itemBuilder: (context, uid) {
                        return Column(
                          children: <Widget>[
                            Row(
                              mainAxisAlignment: MainAxisAlignment.spaceBetween,
                              children: <Widget>[
                                Text(
                                  snapshot.data.keys.toList()[uid],
                                  style: TextStyle(
                                      fontSize: 18, fontWeight: FontWeight.bold),
                                ),
                                RaisedButton(
                                  shape: RoundedRectangleBorder(
                                      borderRadius: BorderRadius.circular(30)),
                                  color: Colors.blue[200],
                                  child: Text(
                                    'Order Ready',
                                    style: TextStyle(color: Colors.black54),
                                  ),
                                  onPressed: () {},
                                ),
                              ],
                            ),
                            ListView.builder(
                              shrinkWrap: true,
                              physics: ClampingScrollPhysics(),
                              itemCount: snapshot.data.values.keys.toList().length,
                              itemBuilder: (context, orderID) {
                                return Text(
                                  '${snapshot.data.values.keys[orderID].toString()} : ${snapshot.data.values.values[orderID].toString()}',
                                  //'${_currentOrders[uid].keys.toList()[orderID]} : ${_currentOrders[uid].values.toList()[orderID]}',
                                  style: TextStyle(fontSize: 16),
                                );
                              },
                            ),
                            Padding(
                              padding: EdgeInsets.only(top: 10),
                              child: Container(
                                color: Colors.grey,
                                height: 1,
                              ),
                            )
                          ],
                        );
                      },
                    ),
                  ),
                ),
              ),
            ],
          ):Center(child: Text('No orders right now', style: TextStyle(fontSize: 30, color: Colors.black54),),);
        }
      );

谢谢你。

4

0 回答 0