Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从firebase/Flatter返回对象列表_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

从firebase/Flatter返回对象列表

从firebase/Flatter返回对象列表,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我在Firebase有一个收藏。我返回一个包含以下代码的流: Stream<List<T>> collectionStream<T>({ @required String path, @required T builder(Map<String, dynamic> data), }) { final reference = Firestore.instance.collection(path); final sn

我在Firebase有一个收藏。我返回一个包含以下代码的流:

Stream<List<T>> collectionStream<T>({
    @required String path,
    @required T builder(Map<String, dynamic> data),
  }) {
    final reference = Firestore.instance.collection(path);
    final snapshots = reference.snapshots();
    return snapshots.map((snapshot) =>
        snapshot.documents.map((snapshot) => builder(snapshot.data)).toList());
  }
}
流采集流({
@必需的字符串路径,
@所需的T生成器(地图数据),
}) {
最终引用=Firestore.instance.collection(路径);
最终快照=reference.snapshots();
返回快照。映射((快照)=>
snapshot.documents.map((snapshot)=>builder(snapshot.data)).toList();
}
}

如何返回
列表
。我不需要小溪。我需要一个对象列表。

您可以使用从collectionStream返回的流的.single getter方法来获取未来:

Stream<List<Bookmark>> bookmarkStream = collectionStream<Bookmark>(...);
streambookmarkstream=collectionStream(…);

List singleList=wait bookmarkStream.single;
而不是

final snapshots = reference.snapshots();
你应该这样做

final _docs = reference.getDocuments();
这将返回一个QuerySnapshot,其中包含
\u docs.documents
中的列表

然后,您可以迭代该列表并获取将其映射到类所需的数据

final _docs = reference.getDocuments();