#arrays #loops #flutter #dart #google-cloud-firestore
#массивы #циклы #flutter #dart #google-облако-firestore
Вопрос:
В построителе потоков у меня есть 2 цикла for, первый цикл for выполняет итерацию по всем документам, в каждом документе есть массив, и каждый элемент массива содержит данные в формате карты, второй цикл for выполняет итерацию по элементам массива.
Я ожидаю, что вывод будет отображаться следующим образом.
-------------------
| DOCUMENT 1 |
-------------------
| ARRAY ELEMENT 1 |
| ARRAY ELEMENT 2 |
-------------------
-------------------
| DOCUMENT 2 |
-------------------
| ARRAY ELEMENT 3 |
| ARRAY ELEMENT 4 |
| ARRAY ELEMENT 5 |
-------------------
В то время как вывод отображается следующим образом:
-------------------
| DOCUMENT 1 |
-------------------
| ARRAY ELEMENT 1 |
| ARRAY ELEMENT 2 |
| ARRAY ELEMENT 3 |
| ARRAY ELEMENT 4 |
| ARRAY ELEMENT 5 |
-------------------
-------------------
| DOCUMENT 2 |
-------------------
| ARRAY ELEMENT 1 |
| ARRAY ELEMENT 2 |
| ARRAY ELEMENT 3 |
| ARRAY ELEMENT 4 |
| ARRAY ELEMENT 5 |
-------------------
Вот как выглядит мой цикл for:
final List<DocTile> docs = [];
final List<DocListTile> docTopics = [];
//Loop for accessing the individual documents from Firestore
for (var doc in docSnapshot) {
final docID = doc.id;
final docTitle = doc.data()['docTitle'];
final docTopic = doc.data()['docTopics'];
//Loop for accessing the individual array elements present within each document, which holds the data in map format.
for (var topic in docTopic) {
docTopics.add(
DocListTile(
topicTitle: topic['docTopicTitle'],
tileNavValue: topic['docTopicID'],
),
);
}
docs.add(
DocTile(
topicHeaderTitle: docTitle.toString().toUpperCase(),
topicList: docTopics,
),
);
// docTopics.clear();
}
Буду признателен, если кто-нибудь поможет мне исправить эту проблему. Заранее большое спасибо!
Ответ №1:
Может быть, вам следует поместить эту строку ниже?
...
remove from here ----> final List<DocListTile> docTopics = [];
//Loop for accessing the individual documents from Firestore
for (var doc in docSnapshot) {
place it here ----> final List<DocListTile> docTopics = [];
...
Комментарии:
1. Блестяще, работает отлично, большое вам спасибо @Dmitry_Kovalov 🙂