Flutter:如何使用cloud_firestore从文档中收集数据?

时间:2019-07-30 04:05:12

标签: flutter dart google-cloud-firestore

我可以从集合中获取所有文档,但是,不知道如何从每个文档中获取集合。

我的数据库结构就像集合->文档->集合(带字段)->文档->字段。

带有打击代码,只有我可以获取第一份文件的字段信息,而不能收集。

如何从每个第一个文档访问第二个集合。

apply plugin: 'java'
apply plugin: "io.spring.dependency-management"

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "io.spring.gradle:dependency-management-plugin:1.0.8.RELEASE"
  }
}

repositories {
  jcenter()
  maven {
    url "http://maven.imagej.net/content/groups/public/"
  }
}

dependencyManagement {
  imports {
    mavenBom 'net.imagej:pom-imagej:14.1.0'
  }
}

dependencies {
  compile 'net.imagej:imagej'
}

2 个答案:

答案 0 :(得分:1)

构建一个函数来获取所有文档并返回QuerySnapshot

Future<QuerySnapshot> getDocuments() async {
    return await Firestore.instance
        .collection('collectionName')
        .document(referenceFromADocument)
        .collection('otherCollectionName')
        .getDocuments();
  }

在小部件中,您可以通过FutureBuilder进行访问

return FutureBuilder<QuerySnapshot>(
      future: _viewModel.getDocuments(),
      builder: (context, snapshot) {
        snapshot.data.documents.map((document) {
          if(snapshot.hasData){
            print(document.toString());
            /// Here you can return a Text widget
          }          
        }).toList()),
      }
);

希望这会有所帮助

答案 1 :(得分:1)

您可以通过DocumentSnapshotdocument.reference.collection("subcollection")获取子集合。

例如:

wallpapersList.reference.collection("subcollection")