繁体   English   中英

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

[英]How to properly get data from Firebase Firestore in Flutter?

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

//in this list we store the data
List adatok = [];

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

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

我做错什么了吗? 有没有其他方法来获取数据?

数据库的布局

使用下面的代码:

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() 完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM