首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振:如何使用cloud_firestore从文档中获取集合?

颤振:如何使用cloud_firestore从文档中获取集合?
EN

Stack Overflow用户
提问于 2019-07-30 04:05:12
回答 2查看 2.6K关注 0票数 2

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

我的数据库结构类似于集合->文档->集合(有字段) ->文档->字段。

使用only代码,只有我可以获得第一份文件的字段信息,而不是收集。

如何从每个第一份文件中获取第二次收集。

代码语言:javascript
复制
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:location/location.dart';

StreamSubscription<QuerySnapshot> subscription;
List<DocumentSnapshot> wallpapersList;


...


class MapPageState extends State<MapPage> {

  final CollectionReference collectionReference =
  Firestore.instance.collection("users");



  @override
  void initState() {
    // TODO: implement initState
    super.initState();

    print(wallpapersList);

    subscription = collectionReference.snapshots().listen((datasnapshot) {
      setState(() {
        wallpapersList = datasnapshot.documents;

      });
    });
}

...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-30 04:56:55

您可以通过DocumentSnapshot通过document.reference.collection("subcollection")获得子集合。

例如:

代码语言:javascript
复制
wallpapersList.reference.collection("subcollection")
票数 6
EN

Stack Overflow用户

发布于 2019-07-30 04:55:55

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

代码语言:javascript
复制
Future<QuerySnapshot> getDocuments() async {
    return await Firestore.instance
        .collection('collectionName')
        .document(referenceFromADocument)
        .collection('otherCollectionName')
        .getDocuments();
  }

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

代码语言:javascript
复制
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()),
      }
);

希望这能帮上忙

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57264138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档