首页 > 解决方案 > Firebase 获取所有文档无法正常工作

问题描述

我正处于 Flutter 职业生涯的初期。现在,我面临一个问题。我认为是因为我真的不知道颤振代码的调用顺序。

问题是当我启动应用程序时(通过保存所有文件),我看到了第一个屏幕截图,但是当应用程序工作并且没有更改我CTRL+S在 dart 文件中输入的任何代码时,我终于看到了第二个屏幕。为什么我不能直接访问第二个屏幕?

*该结构基本上是获取集合中的所有文档并在网格视图中列出它们。

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(),
          ),
        ));
  }

第一个屏幕截图

第二张截图

谢谢!

标签: firebaseflutter

解决方案


推荐阅读