flutter – Problemas para ler dados no Firestore


Estou tentando construir um aplicativo com Flutter usando Firestore como banco de dados. Estou tendo problemas para localizar subcoleções de um documento. Estou com problemas para recuperar os dados, no final da função list eu preciso que ela espere pela listaCanecas antes de retornar, tentei colocar await em vários lugares mas não funcionou Estou usando o MobX:

@override
  Stream<List<Botijao>> list() {
    listCanecas = ();
    return firestore
        .doc(this.doc.path)
        .collection("botijoes")
        .snapshots()
        .map((query) {
      return query.docs.map((doc) {
        doc.reference.collection('canecas').snapshots().listen((getCanecas));
        return Botijao.fromMap(doc, listCanecas);
      }).toList();
    });
  }
  
  getCanecas(QuerySnapshot snapshot) async {
    for (var doc in snapshot.docs) {
      getRacks(doc).listen((racks) {
        listCanecas.add(Caneca.fromMap(doc.reference, racks));
      });
    }
  }

  Stream<List<Rack>> getRacks(DocumentSnapshot doc) {
    return firestore
        .doc(doc.reference.path)
        .collection("racks")
        .snapshots()
        .map((query) {
      return query.docs.map((docR) {
        return Rack.fromMap(docR);
      }).toList();
    });
  }