如何在地图中存储每个返回的查询快照Flutter Firebase

问题描述

我有这个代码

databaseReference
          .collection("myCol").doc('myDoc')
          .get()
          .then((QuerySnapshot snapshot) {
        snapshot.docs.forEach((f) => myMap == f.data);
      })

它返回:{name: Holly,city: NYC,index: 30}

我想以这种格式存储:ExpectedResult

[30,[{'name': holly,'city': NYC},{ANOTHER EXAMPLE}]]

这是我试过的:

snapshot.docs.forEach((f) => myMap[f.data()["index"]].add(f.data())); 

但它抛出这个错误

未处理的异常:NoSuchMethodError:在 null 上调用方法“add”。

我怎样才能达到预期的结果?

解决方法

你为什么不这样做:

var MyMap;
snapshot.docs.forEach((f) => _allEvents = f.data());

现在您将在“MyMap”变量中拥有快照的内容,并且可以通过它进行所有转换。