Android Firebase 查询 StartAt()

标签 android firebase firebase-realtime-database

我在我的 Android 应用程序中使用查询时遇到了一些问题。我的数据库最终将有成百上千个轮询对象。我想一次获得大约 20 个,一旦完成这 20 个,我将获得下一个 20 个。我可以轻松获得前 20 个,但是当我尝试使用 startAt() 查询时就是什么也得不到。

这是我的代码:

pollQuery = rootRef.child(getString(R.string.poll_ref)).startAt(lastPollFromQuery).orderByChild(getString(R.string.timestamp_ref)).limitToFirst(numPollsToLoad);

我已尝试为 lastPollFromQuery 使用 Integer position,目前正在使用 String(轮询对象的键)。我还对 startAt()orderByChild() 进行了调整,但效果不大。

我做错了什么?

最佳答案

您需要传入上次轮询的时间戳和 key 。假设你要从第一页转到第二页,那么你需要知道第一页最后一次轮询的时间戳和 key 。

pollQuery = rootRef.child(getString(R.string.poll_ref))
    .orderByChild("timestamp")
    .startAt(timestampFromLastPollOfPage1, keyFromLastPollOfPage1)
    .limitToFirst(numPollsToLoad);

关于Android Firebase 查询 StartAt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41390128/

相关文章:

android - 无法更新\.gradle\caches\4.4\file-changes\last-build.bin

java - 即使存在数据,Android TextView 也不会在 setText 上显示数据

javascript - AngularJS - Firebase - promise 错误

ios - 如何将 Firestore db 用于多语言应用程序?

android - RecyclerView 中图像的奇怪行为

java.lang.NoClassDefFoundError : android. support.v7.appcompat.R$styleable 错误

firebase - Firebase LatLng的Google Maps标记未显示在 map 上

javascript - 在 Firebase 中存储 ID 列表

firebase - 如何使用 golang 为 firebase 创建推送 ID?

java - 如何在Firebase节点中获得唯一的随机产品?