Как извлечь вложенные ссылки с потоками из флаттера Firebase - PullRequest
0 голосов
/ 24 февраля 2020

Итак, у меня есть вложенные коллекции, и я хотел бы извлечь данные в список, но я не могу понять, как извлечь их в список. Я могу извлечь данные только один раз за один раз, и я не могу поместить их в список.

Это логи 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());
>       },
>     );   }

Спасибо за помощь.

1 Ответ

0 голосов
/ 24 февраля 2020

Есть несколько способов вернуть информацию из вложенных коллекций.

Я выполнил некоторый поиск и нашел в Сообществе несколько хороших постов, которые могли бы вам помочь - поскольку каждый из них предназначен для В конкретном случае, я полагаю, что вы проверяете их, вы получите лучший обзор, поскольку вы лучше знаете свою структуру. Оба приведенных ниже вопроса приняты и решили их проблемы, поэтому я рекомендую вам взглянуть на них.

Дайте мне знать, помогла ли вам эта информация!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...