【问题标题】:How to paging query from Firebase using Android FirebaseUI如何使用 Android FirebaseUI 从 Firebase 分页查询
【发布时间】:2017-05-07 19:23:02
【问题描述】:

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

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

如果您有任何相关文件。请告诉我。 感谢您的提前。

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

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

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

    public Query startAt (String value, String key)
    

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

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

    【讨论】:

    • 感谢您的支持。我想到了这个解决方案。但是,很难确保我每页加载 100 个项目。
    • 嘿,这是一个很好的答案,一直在努力解决它并不断陷入死胡同,您能否添加一个数据库结构的示例?谢谢
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2018-04-16
      • 2015-06-16
      • 2017-11-07
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多