子集合的“ DocumentSnapshot”实例

时间:2020-05-23 04:23:51

标签: flutter google-cloud-firestore flutter-layout

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

以下是Firestore的外观: firestore

1 个答案:

答案 0 :(得分:1)

您可以只在类中的任何地方为各个字段声明这些变量。例如,如果您使用有状态的小部件,则在状态类中声明

var icon;
var act;

然后在print语句之后,变量文档是一个列表。因此,您可以这样做:

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

但这仅适用于一个文档的数据。因此,我建议您熟悉dart中的JSON序列化和反序列化,这样您就可以将这些数据存储在结构良好的模型中。