Flutter 我如何通过cloud_firestore从文档中获取收藏?
我可以从集合中获取所有文档,但不知道如何从每个文档获取集合Flutter 我如何通过cloud_firestore从文档中获取收藏?,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,我可以从集合中获取所有文档,但不知道如何从每个文档获取集合 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 '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;
});
});
}
...
我的数据库结构是collection->document->collection(带字段)->document->field
使用blow代码,只有我可以获得第一个文档的字段信息,而不是集合
如何从每个第一个文档访问第二个集合
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;
});
});
}
...
导入'dart:async';
进口“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
导入“包:google_-maps_-flatter/google_-maps_-flatter.dart”;
导入“包:cloud_firestore/cloud_firestore.dart”;
导入“package:location/location.dart”;
流媒体订阅;
名单;
...
类MapPageState扩展了状态{
最终收集参考收集参考=
Firestore.instance.collection(“用户”);
@凌驾
void initState(){
//TODO:实现initState
super.initState();
打印(壁纸列表);
订阅=collectionReference.snapshots().listen((datasnapshot){
设置状态(){
壁纸列表=datasnapshot.documents;
});
});
}
...
构建一个函数来获取所有文档并返回一个QuerySnapshot
Future<QuerySnapshot> getDocuments() async {
return await Firestore.instance
.collection('collectionName')
.document(referenceFromADocument)
.collection('otherCollectionName')
.getDocuments();
}
Future getDocuments()异步{
return wait Firestore.instance
.collection('collectionName')
.文件(参考文件)
.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()),
}
);
返回FutureBuilder(
未来:_viewModel.getDocuments(),
生成器:(上下文,快照){
snapshot.data.documents.map((文档){
if(snapshot.hasData){
打印(document.toString());
///在这里,您可以返回一个文本小部件
}
}).toList()),
}
);
希望这有助于构建一个函数来获取所有文档并返回一个
QuerySnapshot
Future<QuerySnapshot> getDocuments() async {
return await Firestore.instance
.collection('collectionName')
.document(referenceFromADocument)
.collection('otherCollectionName')
.getDocuments();
}
Future getDocuments()异步{
return wait Firestore.instance
.collection('collectionName')
.文件(参考文件)
.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()),
}
);
返回FutureBuilder(
未来:_viewModel.getDocuments(),
生成器:(上下文,快照){
snapshot.data.documents.map((文档){
if(snapshot.hasData){
打印(document.toString());
///在这里,您可以返回一个文本小部件
}
}).toList()),
}
);
希望这能有所帮助您可以通过
document.reference.collection(“subcollection”)
从DocumentSnapshot
获取子集合
例如:
wallpapersList.reference.collection("subcollection")
您可以通过
document.reference.collection(“子集合”)
从DocumentSnapshot
获取子集合
例如:
wallpapersList.reference.collection("subcollection")