【问题标题】:How can I convert a Stream<QuerySnapshot<Map<String, dynamic>>> to a List<Object>? Flutter如何将 Stream<QuerySnapshot<Map<String, dynamic>>> 转换为 List<Object>?扑
【发布时间】:2021-05-28 20:10:36
【问题描述】:
在 cloud_firestore 的最后一次更新中,当我使用旧代码运行应用程序时出现错误。如何将 Stream>> 转换为 List?
我有这段代码,我得到空值:
Stream<List<Model>> getReviews(String id) {
try {
return _collectionReference.doc(id).collection('reviews').orderBy('date', descending: true).snapshots().map((reviews) => reviews.docs.map((review) => Model.fromJson(review.data())));
} catch (error) {
return error.message;
}
}
【问题讨论】:
标签:
firebase
flutter
dart
google-cloud-firestore
【解决方案1】:
如果您只想获取List<Model>,请使用get 调用并在返回List<Model> 之前等待结果,如下所示:
Future<List<Model>> getReviews(String id) {
try {
QuerySnapshot querySnapshot=await _collectionReference.doc(id).collection('reviews').orderBy('date', descending: true).get();
List<Model> result;
querySnapshot.docs.forEach((doc) {
print(doc["first_name"]);
result.add(Model.fromJson(review.data()));
});
return result;
} catch (error) {
return error.message;
}
确保以异步方式调用getReviews。