如何获取getDocuments Firestore的进度

时间:2019-11-01 15:55:11

标签: flutter dart google-cloud-firestore

我正在从Firestore检索很多文档,这可能需要很多时间,具体取决于用户的网络连接。 我想显示一个进度栏。

我没有找到任何相关文件

这是我的代码:

final databaseReference = Firestore.instance;
databaseReference.collection("XXX").getDocuments().then((QuerySnapshot snapshot) {
      Map<String, Transac.Transaction> map = new Map<String, Transac.Transaction>();
      snapshot.documents.forEach((f)  {
//doing something
});

我想加载一定比例的数据。例如 : 载入中(58%)

谢谢。

2 个答案:

答案 0 :(得分:1)

Firestore不公开查询中文档的任何进度指示器。到您的then回调函数被调用时,所有文档都已加载到客户端上并出现在QuerySnapshot中。

处理此问题的常用方法是显示“微调框”而不是进度条,然后将该微调框隐藏为then回调中的第一个代码。

答案 1 :(得分:0)

您可以做的只是对每个文档分别调用getDocument(),并跟踪它们的完成情况。您应该按照发出它们的顺序跟踪它们,因为请求是通过单个连接进行流水线处理的。如果您要索取大量文件,这会使您大致感到进步。