我正在尝试在文档中检索其中包含地图的地图字段。
世界 是由地图组成的JSON地图。
我想轻而易举地检索这些地图,以便将其解析为自定义对象。
我尝试过:
Stream<DocumentSnapshot> provideDocumentFieldStream() {
return Firestore.instance
.collection('regular-news')
.document('us-en')
.snapshots();
}
Future<NewsModel> getWorldNews() async {
final NewsModel nm = NewsModel();
List<Articles> list = List<Articles>();
var articles = await Firestore.instance
.collection("regular-news")
.document("us-en")
.get();
我无法在可变文章中检索地图。
试图使用这样的流:
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Stream Test',
body: new StreamBuilder(
stream: Firestore.instance.collection('regular-news').document('us-en').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return new Text("Loading");
} else {
return new Text(snapshot.data.data.toString());
}
}),
);
controller: scrollController;
}
但是当我将其分配给字符串时,它会说:
不能将参数类型“ Map”分配给参数类型“ String”。dart(argument_type_not_assignable)
答案 0 :(得分:1)
我设法将地图保存在动态值列表中:
List<Articles> list = List<Articles>();
var val = await Firestore.instance
.collection('collection')
.document('document').get();
LinkedHashMap<String, dynamic> data = val['fieldvalue'];
List<dynamic> values = data.values.toList();
for (int i = 0; i < values.length; i++) {
list.add(Articles.fromJson(values[i]));
}
然后,处理列表中的数据比处理文档快照更简单。