我正在尝试通过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个文档。请帮帮我。