Cloud Firestore во Флаттере Сравнить 2 Коллекции - PullRequest
0 голосов
/ 13 июня 2019

У меня есть 2 коллекции, каждая из которых имеет свой поток.

Я пытаюсь создать вложенный список, ЕСЛИ имя серии Коллекции 1 совпадает с именем серии Коллекции 2.

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

У меня есть 2 коллекции, одна содержит информацию о серии, а другая содержит еженедельную информацию, которая обновляется еженедельно.

Итак, я попытался использовать циклы и операторы if.

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

Я уверен, что перебираю что-то очень простое.

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

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

В идеале каждый элемент списка из Коллекции 1, если он входит в серию из Коллекции 2, возвращает элемент списка только один раз.

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