Firebase获取所有文档无法正常工作

时间:2020-09-27 15:46:00

标签: firebase flutter

我正处于扑朔迷离的职业生涯的开始。现在,我面临一个问题。我认为是因为我真的不知道扑打代码的调用顺序。

问题是,当我启动应用程序(通过保存所有文件)时,我看到了第一个ScreenShot,但是在应用程序正常运行且未更改任何代码的情况下,我在dart文件中输入了 CTRL + S 最后看到第二个屏幕为什么我不能直接访问第二个屏幕?

*该结构基本上是将所有文档收集到一个集合中并在网格视图中列出它们。

final CollectionReference sebzeCollection =
    Firestore.instance.collection('sebzeler');

class RightBody extends StatefulWidget {
  @override
  _RightBodyState createState() => _RightBodyState();
}

class _RightBodyState extends State<RightBody>
    with AutomaticKeepAliveClientMixin {
  @override
  void initState() {
    getAllSebze();

    super.initState();
  }

  List<SebzeMeyve> sebzeler;

  getAllSebze() async {
    sebzeler = new List<SebzeMeyve>();
    sebzeCollection.getDocuments().then((QuerySnapshot snapshot) {
      snapshot.documents.forEach((DocumentSnapshot doc) {
        SebzeMeyve sebze = new SebzeMeyve(
            isInSale: doc.data['isInSale'],
            organic: doc.data['organik'],
            dogal: doc.data['dogal'],
            fiyat: doc.data['fiyat'],
            mensei: doc.data['mensei'],
            name: doc.data['name'],
            picture: doc.data['picture'],
            stok: doc.data['stok']);
        sebzeler.add(sebze);
      });
    });
  }

  List<Widget> _setBuildCards() {
    List _listings = new List<Widget>();
    for (int i = 0; i < sebzeler.length; i++) {
      _listings.add(_buildCard(
          'T-shirt',
          sebzeler[i].name.toUpperCase(),
          '\₺' + sebzeler[i].fiyat,
          sebzeler[i].picture,
          false,
          false,
          context));
    }
    return _listings;
  }
  @override
  Widget build(BuildContext context) {
    // List<SebzeMeyve> _sebzeler = widget.test;
    //super.build(context);
    return Padding(
        padding: const EdgeInsets.only(top: 10.0),
        child: Container(
          padding: EdgeInsets.only(left: 15, right: 15.0),
          width: MediaQuery.of(context).size.width - 30,
          height: MediaQuery.of(context).size.height - 50,
          child: GridView.count(
            crossAxisCount: 3,
            children: _setBuildCards(),
          ),
        ));
  }

First ScreenShot

Second ScreenShot

谢谢!

0 个答案:

没有答案