从Firestore获取地图内的地图

时间:2019-04-20 09:35:16

标签: flutter google-cloud-firestore

我正在尝试从Firestore中获取一些数据,但并没有按照我的方式进行... 我有一个包含“名称,日期和对象”的列表。 在Firestore中,它具有“对象的名称,日期和列表”之类的名称。 该对象在Firestore中具有结构映射的“名称,日期,名称”。日期和名称是字符串。如何获取它,我尝试将其设置为带有地图的地图和带有地图的列表,但没有成功。

如何在android studio中获取或构建它? 预先感谢。

1 个答案:

答案 0 :(得分:0)

查找Streams和Blocs这样的东西是个好主意。而且我可以进一步帮助您指导一些代码。

但是下面的想法是,我们将有一些FutureBuilder,它将使用fetchItems()作为未来。在我的FirebaseDB中,有一个Stores文档。我遍历文档的项目列表,并为每个元素创建一个项目。 Item具有使用FirebaseDB映射的工厂初始化程序。

  class Item {
    String name;
    Timestamp date;
    bool isSomething;

    Item({this.name, this.description, this.price, this.quantity});

    factory Item.fromJSON(Map<dynamic, dynamic> item) {
      return Item(name: item["name"], date: item["date"], isSomething: item["isSomething"]);
    }
  }

  Future<List<Item>> fetchItems() async {
    return Firestore.instance.document("Stores").snapshots().map((snapshot) {
      var name = snapshot.data["name"];
      var itemInfo = snapshot.data["items"] as List;
      return itemInfo.map((item) {
        return Item.fromJSON(item);
      }).toList();
    }).single;
  }