Эта ошибка означает, что вы добавляете или удаляете объекты из коллекции во время итерации. Это недопустимо, поскольку добавление или удаление элементов приведет к изменению размера коллекции и нарушению последующей итерации.
Таким образом, вы не можете удалить элемент в al oop, вместо этого вы можете создать список объектов, которые должны быть удалены и после l oop удалите их. Примерно так:
var toRemove = [];
for (var key2 in purchasedItems.keys) {
for (var id in currentIds) {
if (key2 != id) {
print("key is $key2");
toRemove.add(key)
}
}
}
purchasedItems.removeWhere( (e) => toRemove.contains(e));