我正在尝试获取我的子集合Firestore信息。在我的应用程序中,我首先使用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(
答案 0 :(得分:1)
您可以只在类中的任何地方为各个字段声明这些变量。例如,如果您使用有状态的小部件,则在状态类中声明
var icon;
var act;
然后在print语句之后,变量文档是一个列表。因此,您可以这样做:
var button1 = documents[0];
icon = button1["icondata"];
act = button1["activeLevel"];
但这仅适用于一个文档的数据。因此,我建议您熟悉dart中的JSON序列化和反序列化,这样您就可以将这些数据存储在结构良好的模型中。