如何使用Android FirebaseUI从Firebase分页查询

时间:2016-12-22 08:13:23

标签: android firebase firebase-realtime-database

我有一个使用Firebase Android SDK的服务器聊天项目。 3个月后,我的应用程序有很多用户,他们互相聊天很多。从Firebase加载所有聊天列表需要很长时间。现在,我想知道如何使用Android SDK从Firebase分页查询。

我研究了这个link来找到这个问题的查询命令但是失败了。我只查询第一行或最后一行的行数。我无法从Firebase中的随机定位查询。使用skiptake键进行查询的示例。

如果您有任何相关文件。请告诉我。 谢谢你的进步。

2 个答案:

答案 0 :(得分:7)

skip()take()等概念无法很好地映射到Firebase数据库的实时世界。这就是为什么分页也很难实施的原因。从技术上讲,这是可能的,但为了获得良好的用户体验,请务必记住页面上的数据可能会在用户看到时发生变化。

回到如何实现分页:startAt()endAt()方法采用可选的第二个参数,记录为(强调我的):

public Query startAt (String value, String key)
     

创建一个限制为仅返回值大于或等于给定值的子节点的查询,使用给定的orderBy指令或优先级作为默认值,另外仅使用键更大的子节点超过或等于给定的密钥

因此,如果您有按日期排序的项目列表,则可以传递上一页上最​​后一项的日期和键以获取下一页。你必须要求一个额外的项目(通常称为锚项),但开销应该很小。

答案 1 :(得分:1)

我尝试了这个演示Firebase Paginator,它对我有用。虽然,它有一些问题。