Flutter:未来构建器无法获取数据

时间:2020-06-25 18:02:19

标签: firebase flutter

我编写了这段代码,用于查询Firebase数据库并返回一些数据。直到几天前,这个东西都可以正常工作,但是我不知道为什么现在即使我的数据库中有数据也返回“无数据”

代码中是否有错误或导致此错误的其他原因?

从Firebase获取数据

getsearchfood(String query) {
   Future<QuerySnapshot> search =
   Firestore.instance.collection("data").getDocuments();
   setState(() {
     searched = search;
   });
 }

操作数据

  buildsearchfood() {
    return FutureBuilder(
      future: searched,
      builder: (context, snapshot) {
        if (snapshot.hasData) {
            print("no data");
        }
        else{
            print("present data");
        }
        return Container(
        );
      },
    );
  }

2 个答案:

答案 0 :(得分:0)

添加等待,因为它是异步操作

Future<QuerySnapshot> search =
   await Firestore.instance.collection("data").getDocuments();

答案 1 :(得分:0)

您不需要像以前那样setState

尝试一下:

buildsearchfood() {
    return FutureBuilder(
      future: Firestore.instance.collection("data").getDocuments(),
      builder: (context, snapshot) {
        if (snapshot.hasData) {
          // This means you have data. You can reference it in `snapshot.data`
        }
        else{
          // This means NO data
        }
      },
    );
  }