Заполняйте, только если данные в Коллекции 1 соответствуют данным в Коллекции 2 - PullRequest
1 голос
/ 13 июня 2019

У меня есть 2 коллекции.1-я коллекция настроена следующим образом.

firestore: SeriesCollection
{
seriesName: "Test Name"
seriesStartDate: 
seriesImage:
}

2-я коллекция

firestore: SeriesAudioFiles
{
series: "Test Name"
audioFiles: 
speaker:
dateOfEvent:
}

вот мой код

ExpandableContainer(
              expanded: expandFlag,
              child: ListView.builder(
                itemCount: snapshots.length,
                itemBuilder: (context, index) {
                  if (snapshots[index].data["series"] ==
                      snapshot[widget.index].data["seriesName"]) {
                    return ListTile(
                      leading: Column(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: <Widget>[
                          Text(
                            snapshots[index].data["month"],
                            style: TextStyle(
                                color: Colors.black.withOpacity(.5),
                                fontSize: 15),
                          ),
                          Text(
                            snapshots[index].data["day"],
                            style: TextStyle(
                                color: Colors.black.withOpacity(0.5),
                                fontSize: 30),
                          ),
                        ],
                      ),
                      title: Text(snapshots[index].data["sermonTitle"]),
                      subtitle:
                          Text(snapshots[index].data["sermonReference"]),
                      trailing: Icon(Icons.arrow_forward_ios),
                      onTap: () => passData(snapshots[index]),
                    );
                  }
                },
              ),)

Что я пытаюсь сделать, это перечислитьSeriesAudioFiles ТОЛЬКО если оно совпадает с именем серии из обеих коллекций.

Возможно, мои данные пожарного хранилища настроены неправильно, но я очень новичок в этом.

Я пытался выполнить IF, но содержитКажется, я не могу заставить его заполнить данные, которые мне действительно нужны.

Когда я смог получить данные, которые действительно работают, это происходит с помощью цикла, который несколько раз вытягивает элементы.

1 Ответ

1 голос
/ 13 июня 2019

Вы можете легко использовать .where() метод сбора.
При этом вы можете создать список только с теми аудио, которые вам нужны:

audioListFromSerie = audioCollection.where((i) => i.series == serieList[iterationIndex].seriesName).toList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...