过滤来自未来的数据流

时间:2020-09-13 20:21:12

标签: flutter asynchronous dart flutter-provider

我觉得我在这里超级近。

Stream<List<ClassData>> get classdata {
    
  
    return _firestore
        .collection("Classes")
        .snapshots()
        .asyncMap((QuerySnapshot snapshot) => snapshot.documents
            .where((element) {
              
              bool h = false;
              _firestore.collection("Tutors").document(uid).get().then((value) {
                for (var item in value.data['classes']) {
                 
                  if (element.documentID == item) {
                  
                    h = true;
                  }
                }
              });
             
              return h;
            })
            .map((e) => ClassData.fromUserMap(e.data, e.documentID))
            .toList());

   
  }

我需要根据将来返回的内容获取流。简而言之,我在数据库中有一些数据,并且它具有用于不同集合的文档ID数组。

我首先需要进入tutors集合并循环浏览这些文档ID,然后需要从仅与这些文档ID匹配的classes集合中获取类。

我几乎在这里遇到了问题,就是我需要等到数据通过后才能进行操作;返回。表示“ bool h = false”下面的行需要逐行运行,等待数据通过,然后再进行下一行。

0 个答案:

没有答案