我有一个Firebase数据库,其中包含2个相关集合:“产品”和“类别”。
我想在按产品类别分组的列表视图中显示产品。
每个产品文档中都有一个“类别”字段,即类别ID。
现在,我有以下代码可用于创建列表视图:
StreamBuilder(
stream: Firestore.instance.collection('products').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return const Text("Loading...");
return ListView.builder(
itemBuilder: (context, index) => buildProductItem(context, snapshot.data.documents[index]),
itemCount: (snapshot.data.documents.length),
);
}
)
我已经尝试了一些操作(例如:question),但是我想将其保留在StreamBuilder中,以便数据仍然可以实时更新。
我应该如何对它们进行分组,以便在每个组上方显示一个标题,并在其下方显示与该标题相对应的产品?
答案 0 :(得分:0)
实际上,通过我首先提供的问题的链接可以很容易地解决该问题。 您可以只使用GroupedListView (package)而不是Listview.builder。 不知道为什么我花了这么长时间才得到:p 希望这对以后的人有所帮助:)
SELECT user_id,
amount,
date,
sum(amount) OVER (PARTITION BY user_id
ORDER BY date
RANGE BETWEEN INTERVAL '1 day' PRECEDING
AND CURRENT ROW)
AS sum_over_two_day
FROM atable
ORDER BY user_id, date;
user_id | amount | date | sum_over_two_day
---------+--------+------------+------------------
user8 | 50 | 2020-02-02 | 50
user8 | 25 | 2020-02-05 | 100
user8 | 25 | 2020-02-05 | 100
user8 | 25 | 2020-02-05 | 100
user8 | 25 | 2020-02-05 | 100
user8 | 250 | 2020-02-06 | 500
user8 | 150 | 2020-02-06 | 500
user8 | 300 | 2020-02-07 | 700
(8 rows)