Flutter QuerySnapshot 返回 null

问题描述 投票:-1回答:1

我真正想做的是把所有在 "交付 "集合中的order ID("order_id"),并在另一个调用中使用这些ID,即在 "订单 "集合中输入,并把我在 "交付 "集合中得到的所有ID告知为文档。

我的流。

    function() {
        Firestore.instance
            .collection("delivers")
            .document("fvRpb1xDOKejJ5AEqXEeThaqhci1")
            .collection("orders")
            .snapshots()
            .listen((orders) {
          orders.documents.forEach((f) {
            print("+++++ First +++++ ${f.data}");
            Firestore.instance
                .collection("orders")
                .document(f.documentID)
                .snapshots();
          });
        });
      }

    My StreamBuilder Bellow:



body: Container(
        child: StreamBuilder<QuerySnapshot>(
            stream: function(),
            builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
              print("SNAPSHOT DATA ++++++ ${snapshot.toString()} ++++++}");
              // if (snapshot.hasError)
              //   print("ERRO EM ++++++ ${snapshot.error.toString()} ++++++}");
              if (!snapshot.hasData)
                return Center(
                    child: RaisedButton(
                        onPressed: function, child: Text("press")));
              switch (snapshot.connectionState) {
                case ConnectionState.waiting:
                  return circularProgress();
                  break;
                default:
                  print(
                      "CONNECTION DEFAULT ++++++ ${snapshot.toString()} ++++++}");
                  return ListView(
                      children: snapshot.data.documents
                          .map((DocumentSnapshot myOrder) {
                    return Text(myOrder["quantity"]);
                  }).toList());
              }
            }),
      ),

RETURNS:

Iflutter ( 600): +++++ 第一个 +++++ {order_id: 2tC5gbAYLoj375w9HrKc}。

进行热重装... ⡿Iflutter ( 600): SNAPSHOT DATA ++++++ AsyncSnapshot(ConnectionState.none, null, null) ++++++}。

我的火疗店截图https:/drive.google.comdriveu0folders1ZeXog80wvnR-6cTG2VCE0jOVfrSEyDaM。

firebase flutter
1个回答
0
投票

你没有从 function().

在快照前加上return关键字,如::

return Firestore.instance
    .collection("delivers")
    .document("fvRpb1xDOKejJ5AEqXEeThaqhci1")
    .collection("orders")
    .snapshots();

或者干脆把快照放在流的前面,如 。

stream:Firestore.instance.collection('delivers').document('fvRpb1xDOKejJ5AEqXEeThaqhci1')____________.snapshots(),
© www.soinside.com 2019 - 2024. All rights reserved.