使用模型将所有条目从db(Firestore)提取到列表

时间:2019-04-04 12:07:52

标签: dart model flutter fetch

尝试使用模型来从Firestore获取列表,该模型在没有模型但不能与模型一起使用的情况下起作用。

在一个StatefulWidget中,我得到了一个空的产品列表。基本上来自这样的模型

import

像这样的产品列表

class Product {
  int id;
  String title, price, message;
  Product(this.id, this.title, this.price, this.message);
}

然后使用这样的import 'package:presentation_app/models/product.dart'; class _ProductsListState extends State<ProductsList> { List<Product> products = []; @override Widget build(BuildContext context) { return Scaffold( ... 集合添加了一个StreamBuilder

firestore

然后在StreamBuilder( stream: Firestore.instance.collection('products').snapshots(), builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){ if (!snapshot.hasData) return CircularProgressIndicator(); return BuildListView(products); } ), 类中,我将其称为“产品列表”,并按如下方式使用它:

BuildListView

然后在class BuildListView extends StatelessWidget { final List<Product> products; BuildListView(this.products); 中尝试访问数据,如下所示:

listViewBuilder

我得到了ListView.builder( itemCount: products.length, itemBuilder: (BuildContext context, int index) { int id = products[index].id; String title = products[index].title; String message = products[index].message.toString(); String price = products[index].price.toString(); ,但加载完成后,没有弹出任何消息。

使用这种方法是可行的,但当然不适用于模型

CircularProgressIndicator

1 个答案:

答案 0 :(得分:0)

在这种情况下,不需要<!DOCTYPE html> <html> <head> <title>rera</title> </head> <body> <div id="articleContainer"> <div id="itemContainer"> <img id="logopic" src="logo.png"> <img id="logopic" src="logo.png"> <img id="logopic" src="logo.png"> <img id="logopic" src="logo.png"> <img id="logopic" src="logo.png"> <img id="logopic" src="logo.png"> <img id="logopic" src="logo.png"> </div> </div> </body> </html> <style> #articleContainer { display:flex; justify-content:center; height:100%; width:100%; } #itemContainer { align-items:center; } #logopic { margin-right:10px; margin-left:10px; height:20%; } </style> ,因为我没有使用业务逻辑,因此如果使用model和诸如{{1 }}使用model的{​​{1}}应该看起来像这样。

Bloc

和用于创建数据的数据库模型,例如。

firebase