Вы пытаетесь удалить элемент из List
еще до того, как он был добавлен.
В частности, функция map
назначит List
вашей переменной userList
после того, как отобразит снимки.
По вашему коду я могу сказать, что вы на самом деле не хотите выполнять отображение , а только фильтрацию .
В Dart вы можете фильтровать, используя Iterable.where
.
В вашем случае это будет выглядеть примерно так:
final List<DocumentSnapshot> userList = snapshot.data.documents
.where((DocumentSnapshot documentSnapshot) => documentSnapshot['userId'] != id).toList();
Я предполагаю, что вам нужны только документы, которые не имеют a userId
из id
, в противном случае вам придется использовать оператор ==
.
Вы также можете использовать List.removeWhere
, назначив сначала все документы вашему userList
, а затем позвонив removeWhere
:
final List<DocumentSnapshot> userList = snapshot.data.documents;
userList.removeWhere((DocumentSnapshot documentSnapshot) => documentSnapshot['userId'] != id).toList();