如何在不检索存储在列表中的DocumentSnapshot的情况下确定每个DocumentSnapshot

时间:2019-11-08 05:01:23

标签: flutter google-cloud-firestore

在使用List的情况下,如果打印此列表,它将成为DocumentSnapshot的Instance,并且无法看到其内容。 当然,您可以通过使用[]指定每个DocumentSnapshot并查看.id属性来标识每个DocumentSnapshot。 有没有一种方法可以确定而不删除它?

1 个答案:

答案 0 :(得分:0)

我认为,最简单的方法来确定documentSnapshot和json响应,您应该检出数据库结构并使用打印日志。

例如:

如果收到查询快照,则可以通过打印日志确定值。

print(snapshot);
print(snapshot.data);
// by knowing the runtime types you can manage different data accordingly.
print(snapshot.data.runtimeType); 

通过这种方式,每次检查快照的runtimeType时,您都可以轻松确定列表,映射和数据类型的值。

例如:如果snapshot.data的运行时类型是一个映射,那么要管理映射键值对,您可以采用类似的方法,

Map map=snapshot.data;

map.forEach((key,value){
      print("key : ${key}");
      print("value : ${value}");
    });

这样,您将能够打印出地图键值对的日志。

类似地,如果要管理列表类型的快照,

List list=snapshot.data;

for(int i=0;i<10;i++){
  print("list : ${list[i]}");
  print("list : ${list[i].runtimeType}");
}

通过这种方式,您可以轻松管理任何类型的json格式和快照。