我可以从集合中获取所有文档,但是,不知道如何从每个文档中获取集合。
我的数据库结构类似于集合->文档->集合(有字段) ->文档->字段。
使用only代码,只有我可以获得第一份文件的字段信息,而不是收集。
如何从每个第一份文件中获取第二次收集。
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;
});
});
}
...发布于 2019-07-30 04:56:55
您可以通过DocumentSnapshot通过document.reference.collection("subcollection")获得子集合。
例如:
wallpapersList.reference.collection("subcollection")发布于 2019-07-30 04:55:55
构建一个函数来获取所有文档并返回一个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()),
}
);希望这能帮上忙
https://stackoverflow.com/questions/57264138
复制相似问题