我正在尝试获取我的子集合firestore信息,在我的App中,我在第一时间使用了StreamBuilder,所以我可以获取主集合数据,而他们在FutureBuilder之后,我可以获取子集合数据。在我的App中,我首先使用StreamBuilder,这样我就可以得到主集合数据,然后使用FutureBuilder,这样我就可以得到子集合数据。当我试图获取子集合数据时,我得到的响应是。
I/flutter ( 2982): [Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot']
我有同样数量的子集,但我如何访问不同的子集,并获得它里面的数据?并将其存储到一个变量中 这就是我怎么把这个打印出来的。
return FutureBuilder<QuerySnapshot>(
future: Firestore.instance.collection('dadosusuarios').document(user.uid).collection('buttons').getDocuments(),
builder: (context, snapshotsub) {
if (!snapshot.hasData) {
return Loading();
}
final documents = snapshotsub.data.documents;
print(documents);
return Scaffold(
你可以在类中的任何地方为各个字段声明这些变量即可。例如,如果你使用的是有状态的widget,那么在你的状态类中,声明
var icon;
var act;
然后在打印语句之后,变量document是一个列表。所以你可以这样做。
var button1 = documents[0];
icon = button1["icondata"];
act = button1["activeLevel"];
但这只针对一个文档的数据。所以我建议你熟悉dart中的JSON序列化和反序列化,这样你就可以将这些数据存储在结构良好的模型中。