Firebase实时数据库GroupBy方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase实时数据库GroupBy方法相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

任何帮助表示赞赏。

答案

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

以上是关于Firebase实时数据库GroupBy方法的主要内容,如果未能解决你的问题,请参考以下文章

检查 Firebase/实时数据库的内容

实时数据库未将数据推送到 Firebase

如何在 Swift 中保存实时 Firebase 数据库中的数据?

如何将现有列表更改为新列表? || android - firebase 实时数据库

在 Swift 中的 Firebase 实时数据库观察方法中具有异步函数的 DispatchGroup

数据未插入 Firebase 实时数据库抛出 Android