Я пытался создать виджет, в котором члены группы запросов отображают свои изображения профиля внутри виджета.Я могу собрать данные, и я решил использовать 2D-массивы, в которых каждый индекс массива имеет другой массив, содержащий все URL-адреса фотографий всех пользователей в этой группе и т. Д.
Для этогоСначала мне нужно было создать двумерный массив идентификаторов пользователей с каждым индексом, содержащим массив с идентификаторами пользователей соответствующих членов.У меня не было проблем с этим, так как эти данные уже были в массиве на firestore для каждого запроса.
Приведенный ниже код получает массив идентификаторов пользователей для всех членов каждого запроса из firestore и помещает каждый массив в 2D-массив, который содержит информацию для всех запросов этого пользователя.
_firestore.collection('users').document('$uid').collection('requests')
.getDocuments()
.then((QuerySnapshot querysnap) {
for (var doc in querysnap.documents) {
setState(() {
requesterIDs.add(requester);
requestedFromId=doc.data['requested from'];
requestedFromIdLists.add(requestedFromId);
});}})
.then((_)=> setState((){
Затем я пытаюсь использовать идентификаторы для создания 2d-массива URL-адреса фотографий каждого пользователя:
for(int x=0; x<requestedFromIdLists.length;x++){
for(int y=0;y<requestedFromIdLists[x].length;y++){
String id=requestedFromIdLists[x][y];
_firestore.collection('users').document('$id').get().then((
DocumentSnapshot document) {
setState(() {
String requestedPhoto = document.data['photoUrl'].toString();
requestedPhotoUrls.add(requestedPhoto);
});
});}
requestedPhotoUrlsLists.add(requestedPhotoUrls);
requestedPhotoUrls.clear();
}
}));
Однако в итоге я получаю 2d-массив со всеми дублированными URL-адресами фотографий, как дважды вместо [[url1, url2], [url3]] я получаю это [[url1, url2, url3], [url1, url2, url3]], я прослеживал код несколько раз, и я думаю, что он как-то связан с этими двумя последними утверждениями 'положение, я думаю, что они были вызваны раньше или что-то ??Есть идеи?