我在我的 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/