如何从Flutter中的Firebase Firestore正确获取数据?

时间:2020-03-30 12:20:42

标签: firebase flutter google-cloud-firestore

我有一个Firebase Firestore数据库,如图所示。我想从问题集合中获取每个文档及其字段。 我在互联网上找到以下解决方案:

JFrame

我的问题是,当我调用此函数(在按钮的onPresed()函数中)时,第一次按下adatok列表是空的。但是当我第二次按下按钮时,它包含了我想要获取的所有数据。

我做错了吗?还有另一种获取数据的方法吗?

The layout of the database

1 个答案:

答案 0 :(得分:1)

使用以下代码:

List adatok = [];

Future<void> getData() async{
 QuerySnapshot snapshot = await databaseReference.getDocuments();
    snapshot.documents.forEach((f){
      data = f.data;
      adatok.add(data);
      print(adatok.length);
      print(adatok);
    }
}

通过这种方式,程序将等待直到获得所有文档。 然后将其添加到快照中。

另外,您还必须将onPressed()函数更改为async / await,如下所示:

onPressed:() async{
await getData();
/...
}

因此程序等待getData()完成。