【问题标题】:return a list of objects from firebase/flutter从 firebase/flutter 返回一个对象列表
【发布时间】:2020-05-15 11:17:52
【问题描述】:

我在 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());
  }
}

如何返回List&lt;T&gt;。我不需要流。我需要我的对象列表。

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    你可以使用collectionStream返回的Stream的.single getter方法来获取一个Future:

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

    ...

    List<Bookmark> singleList = await bookmarkStream.single;
    

    【讨论】:

      【解决方案2】:

      代替

      final snapshots = reference.snapshots();
      

      你应该这样做

      final _docs = reference.getDocuments();
      

      这将返回一个 QuerySnapshot,其中包含 _docs.documents 中的一个列表。

      然后您可以遍历该 List 并获取将其映射到您的类所需的数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-10
        • 1970-01-01
        • 1970-01-01
        • 2021-03-01
        • 2016-08-30
        • 2021-12-27
        • 2020-12-07
        • 2020-03-21
        相关资源
        最近更新 更多