从Firebase数据库中查找最近50个节点的最大值

时间:2019-06-11 23:35:18

标签: java android firebase firebase-realtime-database

我只想从最近的50个节点中找到最大值。我曾经使用orderByChild和limitToLast方法,但是它从所有节点中查找最大值,而不仅仅是从最近50个节点中查找。 这是我的数据库: enter image description here

我的代码:

void print(Ng *a) {
    printf("Username: %s",a->username);
}

因此,如您所见,我尝试从最近的50个节点中找到hum变量的最大值。 附言新节点不断出现在数据库中,因此最大值应实时每50个值更改

1 个答案:

答案 0 :(得分:0)

如果您想要最多50个最近的节点,则尝试按以下两个属性进行排序:

  • 湿度
  • 节点的时间(或其键)

Firebase数据库查询只能对单个属性进行排序/过滤。

在许多情况下,可以将要过滤的值组合为单个(合成)属性。有关此方法和其他方法的示例,请在此处查看我的答案:http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase。但我认为这对您来说不可能。

我能想到的最好的方法是只听最后50个节点,然后根据客户端的湿度对其进行重新排序。