子库的 "DocumentSnapshot "实例。

问题描述 投票:0回答:1

我正在尝试获取我的子集合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(

这是火库的样子firestore

flutter google-cloud-firestore flutter-layout
1个回答
1
投票

你可以在类中的任何地方为各个字段声明这些变量即可。例如,如果你使用的是有状态的widget,那么在你的状态类中,声明

var icon;
var act;

然后在打印语句之后,变量document是一个列表。所以你可以这样做。

var button1 = documents[0];
icon = button1["icondata"];
act = button1["activeLevel"];

但这只针对一个文档的数据。所以我建议你熟悉dart中的JSON序列化和反序列化,这样你就可以将这些数据存储在结构良好的模型中。

© www.soinside.com 2019 - 2024. All rights reserved.