Итак, у меня есть вложенные коллекции, и я хотел бы извлечь данные в список, но я не могу понять, как извлечь их в список. Я могу извлечь данные только один раз за один раз, и я не могу поместить их в список.
Это логи c - Пользователь ( коллекция ) -> Документ ( некоторый идентификатор документа ) -> поле данных, которое я все ArtShowClass.
General ( collection ) -> ShowDocument ( некоторый идентификатор документа ) -> ShowCollection -> ( некоторый идентификатор документа ) -> поле ссылки на тип данных, в котором хранится ссылка на эту ссылку на документ пользователя.
Это основа c сообщение от пользователя
Вот как это выглядит после того, как я сохраню тип эталонного типа
Дополнительные пояснения.
/ Пользователь / y7qg9IwVcEeGGp47qgzVvL8u0ak1 / Posts / 2020-02-22 19:44:45 02-22 19: 44: 45.409573 -> Это тип справочных данных / User / y7qg9IwVcEeGGp47qgzVvL8u0ak1 / Posts / 2020-02-22 19: 44: 45.409573
/ Genera lList / Art Shows / Shows 1 / 2020-02-23 02: 03: 14.119358 -> Это тип справочных данных / User / 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());
> },
> ); }
Спасибо за помощь.