如何获得Future <List <List <List <DocumentSnapshot >>>的值?

时间:2019-06-17 09:40:41

标签: firebase flutter google-cloud-firestore

我在云存储中有两个集合,用于存储某些类型产品的数据。这些产品中的每一个都有三个变量,这些变量在不同的任务count,count2和count3中用作计数器。 我想做的是遍历带有这些集合名称的数组,并在每个集合中比较哪个产品的计数器最大。

Future<List<List<DocumentSnapshot>>> getPopularList() async {
   List<List<DocumentSnapshot>> res = new List<List<DocumentSnapshot>>();
   var array = ['Frutas&Vegetales', 'Pan&Pasteles'];

   for (int i = 0; i < array.length; i++) {
     QuerySnapshot querySnapshot = await 
 Firestore.instance.collection(array[i]).getDocuments();
    var lista = querySnapshot.documents;
    int max = 0;
    int max2 = 0;
    int max3 = 0;
    DocumentSnapshot items;
    DocumentSnapshot items2;
    DocumentSnapshot items3;
    List<DocumentSnapshot> listdocs = new List<DocumentSnapshot>();
    for (int i = 0; i < lista.length; i++) {
      if(lista[i]['count'] > max){
        max = lista[i]['count'];
        items = lista[i];
      }
      if(lista[i]['count2'] > max2){
        max2 = lista[i]['count2'];
        items2 = lista[i];
      } 
      if(lista[i]['count3'] > max3){
        max3 = lista[i]['count3'];
        items3 = lista[i];
      }
    }
    listdocs.add(items);
    listdocs.add(items2);
    listdocs.add(items3);
    res.add(listdocs);
  }
  return res;
}

我需要从列表中获取值,而不是Future的实例。

1 个答案:

答案 0 :(得分:0)

使用await

List<List<DocumentSnapshot>> lista_populares = await getPopularList();