У меня есть следующий построитель потока:
streamCard() {
return StreamBuilder(
stream: cardsRef
.orderBy("timestamp", descending: true)
.limit(10)
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return circularProgress();
}
List<CustomCard> cards = [];
snapshot.data.documents.forEach((doc) {
cards.add(CustomCard.fromDocument(doc));
});
...
return Stack(
alignment: Alignment.center,
children: cards,
);
Мне нужно отфильтровать определенные карты от добавления в поток / отображения, когда:
- Я владелецкарточка ('ownerId' == currentUserId)
- Мне понравилась карточка («Мне нравится. Содержит = currentUserId)
OwnerId - это поле внутри каждого документаи Liked - это массив идентификаторов, которым он понравился.
Я пытался удалить карты из списка добавленных в Список карт <> с .where и .contains, но не смог правильнооткажитесь от них. Я думал, что другим вариантом может быть изменение стека напрямую, в
children: cards
с помощью cards.removeWhere / .skip или что-то в этом роде.
Я ценю всю помощь, чтобы узнать, как этого добиться, заранее спасибо!