StreamBuilder快照内部没有数据

时间:2020-06-30 08:46:47

标签: flutter dart google-cloud-firestore snapshot stream-builder

我正在尝试通过StreamBuilder检索文档列表及其数据。这是我的信息流:

List<GroceryCart> _cartFromSnapshot(QuerySnapshot snapshot){
    return snapshot.documents.map((doc){
      return GroceryCart(
        name: doc.data["name"] ?? '',
        cost: doc.data["cost"] ?? '',
      );
    }).toList();
  }

  Stream<List<GroceryCart>> get cartItems {
    return customerCollection.document(uid).collection("grocery_cart").snapshots().map(_cartFromSnapshot);
  }

和StreamBuilder访问流,

return StreamBuilder<List<GroceryCart>>(
      stream: GroceryDatabaseService(uid: user.uid).cartItems,
      builder: (context, snapshot){
        
        if(snapshot.connectionState == ConnectionState.active){

          if(snapshot.hasData){

            List<GroceryCart> cart = snapshot.data;

            return ListView.builder(
            itemCount: cart.length,
            itemBuilder: (context, index) {
             print(index);
            });
          } else { print("No data in snapshot"); }
         } else { print("ConnectionState is not active yet");}
       }
     );

每次在这里抛出snapshot.hasData = false时,我什至尝试了snapshot!=null条件,快照仍然没有任何数据,即null。我的数据库在给定的路径中还包含3个文档。请帮帮我。

0 个答案:

没有答案