【发布时间】:2020-02-26 22:16:37
【问题描述】:
我有以下流生成器:
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)
- 我喜欢这张卡片('liked.' contains = currentUserId)
OwnerId 是每个文档中的一个字段,而 Liked 是一个包含喜欢它的 Id 的数组。
我尝试使用 .where 和 .contains 将卡片从添加到卡片列表 中删除,但无法正确“丢弃”它们。我在想另一种选择可能是直接修改堆栈,在
children: cards
使用cards.removeWhere/.skip,或类似的东西。
【问题讨论】:
标签: flutter dart google-cloud-firestore stream-builder