【问题标题】: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&lt;Model&gt;,请使用get 调用并在返回List&lt;Model&gt; 之前等待结果,如下所示:

    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

    【讨论】:

      猜你喜欢
      • 2021-08-13
      • 1970-01-01
      • 2021-11-11
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      相关资源
      最近更新 更多