我有一个Firebase Firestore数据库,如图所示。我想从问题集合中获取每个文档及其字段。 我在互联网上找到以下解决方案:
JFrame
我的问题是,当我调用此函数(在按钮的onPresed()函数中)时,第一次按下adatok列表是空的。但是当我第二次按下按钮时,它包含了我想要获取的所有数据。
我做错了吗?还有另一种获取数据的方法吗?
答案 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()完成。