如何从firebase Flatter中提取带有流的嵌套引用
所以我有一个嵌套的集合,我想将数据提取到一个列表中,但我似乎不知道如何将其提取到一个列表中。我一次只能提取一次数据,无法将其放入列表中 这就是逻辑- 用户(集合)->文档(某些文档Id)->我所有的ArtShowClass数据字段 常规(集合)->ShowCollection(某些文档ID)->ShowCollection->(某些文档ID)->存储对该用户文档引用的引用的数据类型引用字段 更多的解释 /User/y7qg9iwvceegp47qgzvvl8u0ak1/Posts/2020-02-22 19:44:45.409573 /User/y7qg9iwvceegp47qgzvvl8u0ak1/Posts/2020-02-23 02:03:14.119358 /一般作家/艺术展/展览1/2020-02-22 19:44:45.409573->这已经 的引用数据类型 /User/y7qg9iwvceegp47qgzvvl8u0ak1/Posts/2020-02-22 19:44:45.409573 /通用列表/艺术展/展览1/2020-02-23 02:03:14.119358->这已经 的引用数据类型 /User/y7qg9iwvceegp47qgzvvl8u0ak1/Posts/2020-02-23 02:03:14.119358 我能够编写代码来获取列表视图中的数据并进行打印。但我并不希望这样,我希望将所有数据提取到一个列表中,然后将其发送到另一个小部件 这就是我把它们打印成某种列表的方法如何从firebase Flatter中提取带有流的嵌套引用,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,所以我有一个嵌套的集合,我想将数据提取到一个列表中,但我似乎不知道如何将其提取到一个列表中。我一次只能提取一次数据,无法将其放入列表中 这就是逻辑- 用户(集合)->文档(某些文档Id)->我所有的ArtShowClass数据字段 常规(集合)->ShowCollection(某些文档ID)->ShowCollection->(某些文档ID)->存储对该用户文档引用的引用的数据类型引用字段 更多的解释 /User/y7qg9iwvceegp47qgzvvl8u0ak1/Posts/2020-
final CollectionReference exploreCollection = Firestore.instance.collection('GeneralList');
> Widget build(BuildContext context) {
> User user = Provider.of<User>(context);
> String sdfdsfdf;
> var explorer = exploreCollection.document("Art Shows").collection("Shows 1").snapshots();
> return StreamBuilder<QuerySnapshot>
> (
> stream: explorer,
> builder: (context, snapshot){
> if (!snapshot.hasData)
> return Text("Loading data...", style: TextStyle(color: Colors.white),);
>
> return ListView(children: snapshot.data.documents.map((document)
> {
> DocumentReference documentReference = document.data['ref'];
> //Stream<ArtShowClass> sdfd = documentReference.snapshots().map(_showsHelperFromSnapShot);
> return StreamBuilder<DocumentSnapshot>(
> stream: documentReference.snapshots(),
> builder: (context, snapshot) {
>
> if (!snapshot.hasData) return Text("Loading...");
> ArtShowClass sdfd = ArtShowClass(
> userHandle: snapshot.data['userHandle'] ?? '',
> artShowTitle: snapshot.data['artShowTitle'] ?? '',
> artistName: snapshot.data['artistName'] ?? '',
> artShowAddress: snapshot.data['artShowAddress'] ?? '',
> artShowDescription: snapshot.data['artShowDescription'] ?? '',
> artShowDate: snapshot.data['artShowDate'] ?? '',
> artShowTime: snapshot.data['artShowTime'] ?? '',
> websiteLink: snapshot.data['websiteLink'] ?? '',
> email: snapshot.data['email'] ?? '',
> phoneNumber: snapshot.data['phoneNumber'] ?? '',
> pictureName: snapshot.data['pictureName'] ?? '',
> genre: snapshot.data['genre'] ?? '',
> ticketAmount: snapshot.data['ticketAmount'] ?? 0
> );
> sdfdsfdf = snapshot.data['email'];
> return Text("${snapshot.data['email']}", style: TextStyle(color: Colors.red),);
> },
> );
> }).toList());
> },
> ); }
final CollectionReference exploreCollection=Firestore.instance.collection('GeneralList');
>小部件构建(构建上下文){
>User=Provider.of(上下文);
>字符串sdfdsfdf;
>var explorer=exploreCollection.document(“艺术展”).collection(“Shows 1”).snapshots();
>返回流生成器
> (
>流:explorer,
>生成器:(上下文,快照){
>如果(!snapshot.hasData)
>返回文本(“加载数据…”,样式:TextStyle(颜色:Colors.white),);
>
>返回ListView(子项:snapshot.data.documents.map((文档)
> {
>DocumentReference=document.data['ref'];
>//Stream sdfd=documentReference.snapshots().map(\u showshellperfromsnapshot);
>返回流生成器(
>流:documentReference.snapshots(),
>生成器:(上下文,快照){
>
>如果(!snapshot.hasData)返回文本(“正在加载…”);
>ArtShowClass sdfd=ArtShowClass(
>userHandle:snapshot.data['userHandle']??',
>artShowTitle:snapshot.data['artShowTitle']??“,
>artistName:snapshot.data['artistName']??“,
>artShowAddress:snapshot.data['artShowAddress']??“,
>artShowDescription:snapshot.data['artShowDescription']??“,
>artShowDate:snapshot.data['artShowDate']??“,
>artShowTime:snapshot.data['artShowTime']??“,
>websiteLink:snapshot.data['websiteLink']??“,
>电子邮件:快照。数据['email']??“,
>phoneNumber:snapshot.data['phoneNumber']??',
>pictureName:snapshot.data['pictureName']??“,
>类型:快照。数据['genre']??“,
>ticketmount:snapshot.data['ticketmount']?0
> );
>sdfdsfdf=snapshot.data['email'];
>返回文本(${snapshot.data['email']}),样式:TextStyle(颜色:Colors.red);
> },
> );
>}).toList());
> },
> ); }
谢谢您的帮助。有一些方法可以从嵌套集合返回信息 我已经进行了一些搜索,我可以在社区中找到一些不错的帖子,这些帖子可能会对你有所帮助——因为每一篇都是针对一个特定案例的,我相信你检查一下,应该会给你提供一个更好的概览,因为你更了解自己的结构。下面两个问题都被接受并解决了他们的问题,所以我建议你看看
如果这些信息对你有帮助,请告诉我 非常感谢。我想出来了。我认为我的逻辑思维是错误的,我认为流是我可以随时结束的东西,但我需要做我想做的事情,同时不断地流。我使用silvergrid.count,然后在里面有一个流生成器来为Return流式处理我的数据,很高兴听到你能解决这个问题!感谢您提供解决问题的方法,@AdeojoKiibati。如果你认为我的答案对你有帮助,请考虑投票或接受它。@ AdeojoKiibati,如果你能在这里分享一些代码,那就太好了。谢谢