如何从firebase flutter中提取带有流的嵌套引用



所以我有一个嵌套的集合,我想将数据提取到列表中,但我似乎不知道如何将其提取到列表。我一次只能提取一次数据,无法将它们放入列表中。

这就是逻辑-用户(集合(->文档(some Document Id

常规(集合(->ShowDocument(some document ID

这是一篇来自用户的基本帖子

这就是我存储引用数据类型后的样子

更多解释。

/User/y7qg9IwVcEeGGp47qgzVvL8u0ak1/Posts/2020-02-22 19:44:45.409573/用户/y7qg9IwVcEeGGp47qgzVvL8u0ak1/Posts/2020-02-23 02:03:14.119358

/总名单/艺术展/展览1/2020-02-22 19:44:45.409573->这已经的引用数据类型/用户/y7qg9IwVcEeGGp47qgzVvL8u0ak1/Posts/2020-02-22 19:44:45.409573

/总清单/艺术展/展览1/2020-02-23 02:03:14.119358->这已经的引用数据类型/用户/y7qg9IwVcEeGGp47qgzVvL8u0ak1/Posts/2020-02-23 02:03:14.119358

我能够编写代码以在列表视图中获取数据并进行打印。但我并不想这样,我想将所有数据提取到一个列表中,然后将其发送到另一个小部件。

这就是我所做的,把它们打印成某种列表

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());
>       },
>     );   }

谢谢你的帮助。

有一些方法可以从嵌套集合中返回信息。

我已经进行了一些搜索,我可以在社区上找到一些不错的帖子,这些帖子可能会对你有所帮助——因为每一篇都是针对特定的案例,我相信你检查一下它们,应该会给你一个更好的概述,因为你更了解自己的结构。以下两个问题都被接受并解决了他们的问题,所以我建议你看一看。

  • Firebase检索嵌套数据
  • 从firebase检索复杂的嵌套数据

如果这些信息对您有帮助,请告诉我!

最新更新