Firebase实时数据库GroupBy方法

问题描述 投票:1回答:1

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

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

  • awayTeam
  • 日期
  • 游戏ID
  • 主队
  • 沥青
  • 时间

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

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

任何帮助表示赞赏。

android listview firebase firebase-realtime-database
1个回答
1
投票

Firebase中没有group by操作。实际上,您会发现Firebase中缺少您从关系数据库中习惯的许多操作。

您获得的回报是更灵活的数据模型。例如:如果您想按特定数据对游戏进行分组,则可以将其作为关键字存储在该特定日期之下:

games
  2018-02-28
    game1: { ... }
    game2: { ... }
    game3: { ... }
  2018-03-01
    game4: { ... }

现在,您可以对给定日期的所有游戏进行简单查找。

如果您想按照不同的标准对游戏进行分组,您可能会保留原始列表,然后为每个标准创建查找列表(通常也称为索引)。例如。

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

© www.soinside.com 2019 - 2024. All rights reserved.