我有一个Firebase实时数据库,充当我的Android应用的后端。该应用程序将显示足球联赛的固定装置。结果显示在片段列表视图中。
我有一个像这样的记录结构;
我想要做的是按照时间顺序按特定日期分组游戏。所以如果我有10场比赛(记录),前5场比赛是在01/04/2018,接下来的5场比赛是在01/05/2018,那么我希望能够展示所有的01/04/2018比赛在那里有自己的分组框等等。
在SQL Group By中很容易实现,但我不确定这是否可以通过查询实现,或者我是否必须编写一个递归函数来构建树视图并按数组级别的数据对它们进行排序
感谢任何帮助。
答案 0 :(得分:1)
Firebase中没有group by
操作。实际上,您会发现Firebase中缺少您从关系数据库中习惯的许多操作。
您获得的回报是更灵活的数据模型。例如:如果您想按特定数据对游戏进行分组,则可以将其作为关键字存储在该特定日期:
games
2018-02-28
game1: { ... }
game2: { ... }
game3: { ... }
2018-03-01
game4: { ... }
现在,您可以针对给定日期对所有游戏进行简单查找。
如果您想按照不同的标准对游戏进行分组,您可能会保留原始列表,然后为每个标准创建查找列表(通常也称为索引)。 E.g。
gamesByDate
2018-02-28
game1: true
game2: true
game3: true
2018-03-01
game4: true
gamesByTeam
Team1
game1: true
game2: true
Team2
game1: true
game3: true
game4: true
现在,您可以按日期或按团队查找游戏ID,然后按ID查找每个游戏的属性。