Firebase实时数据库GroupBy方法

时间:2018-03-01 00:41:31

标签: android listview firebase firebase-realtime-database

我有一个Firebase实时数据库,充当我的Android应用的后端。该应用程序将显示足球联赛的固定装置。结果显示在片段列表视图中。

我有一个像这样的记录结构;

  • awayTeam
  • 日期
  • 游戏ID
  • hometeam
  • 间距
  • 时间

我想要做的是按照时间顺序按特定日期分组游戏。所以如果我有10场比赛(记录),前5场比赛是在01/04/2018,接下来的5场比赛是在01/05/2018,那么我希望能够展示所有的01/04/2018比赛在那里有自己的分组框等等。

在SQL Group By中很容易实现,但我不确定这是否可以通过查询实现,或者我是否必须编写一个递归函数来构建树视图并按数组级别的数据对它们进行排序

感谢任何帮助。

1 个答案:

答案 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查找每个游戏的属性。