Flutter firebase firestore 结合 2 查询

Flutter firebase firestore combine 2 query

在下面的示例中,我想合并 2 个 firestore 查询,但我无法让它工作。

final List<Who> pagedData =
        await _query.get().then((QuerySnapshot snapshot) async {
      if (snapshot.docs.isNotEmpty) {
        _lastDocument = snapshot.docs.last;
      } else {
        _lastDocument = null;
      }
      return snapshot.docs.map((QueryDocumentSnapshot e) async {
        final data = e.data() as Map<String, dynamic>;
        Whoes w = Whoes.fromMap(e.data());
        User u = await _firestore
            .collection("user")
            .doc(data['s'])
            .get()
            .then((DocumentSnapshot documentSnapshot) => User.fromMap(
                documentSnapshot.data()));
        return Who(w, u);
      }).toList();
    });

当我把 await 放在用户部分时,事情变得混乱,我无法编辑它。

我想输出的结果是List<Who>

我错过了什么?

它给我这个错误:

The return type 'List<Future<Who>>' isn't a 'Future<List<Who>>', as required by the closure's context.

我解决了这个问题,我把它留给遇到这个问题的人

final List<Who> pagedData =
        await _query.get().then((QuerySnapshot snapshot) async {
      if (snapshot.docs.isNotEmpty) {
        _lastDocument = snapshot.docs.last;
      } else {
        _lastDocument = null;
      }
      Iterable<Future<Who>> futureWho = 
      snapshot.docs.map((QueryDocumentSnapshot e) async {
        final data = e.data() as Map<String, dynamic>;
        Whoes w = Whoes.fromMap(e.data());
        User u = await _firestore
            .collection("user")
            .doc(data['s'])
            .get()
            .then((DocumentSnapshot documentSnapshot) => User.fromMap(
                documentSnapshot.data()));
        return Who(w, u);
      });
      Future<List<Who>> listWho = Future.wait(futureWho);
      return listWho;
    });