如何编写查询以从firebase数据库中检索不同的节点?

时间:2018-04-21 13:22:11

标签: android firebase firebase-realtime-database

我希望获得三个不同的节点,同时在android中进行查询以进行分页。我有节点树如下

tree of nodes

我通过将查询设为

来构建一个逻辑来获取三个节点
Query q =FirebaseDatabase.getInstance()
        .getReference()
        .child("testting")
        .orderByKey().startAt(starting_point)
        .limitToFirst(3);

在上面的代码中starting_point是我希望获得下一个三个节点 排除 的节点的关键starting_point节点。但是当我从starting_point节点开始查询时,它在结果中重复了点节点。

反映结果的图片:

image to show that starting node is repeated in result

因此,请指导如何进行查询以获取排除 starting_point的下一个节点。

1 个答案:

答案 0 :(得分:0)

Firebase实时数据库API仅支持查询所谓的包含范围。无法从查询结果中排除第一个(或最后一个)节点。这意味着您必须删除重叠项目客户端。这通常意味着您将第一个结果的键与您之前看到的最后一个键进行比较,如果键相同则将其排除。

这是新Cloud Firestore数据库的查询API解决的一个要点。它具有允许独占范围查询的显式startAfterendBefore方法。