Android Firebase查询StartAt()

时间:2016-12-30 03:14:58

标签: 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);

我尝试使用Integer position lastPollFromQuery,目前正在使用String(投票对象的关键字)。我也在startAt()orderByChild()附近拖了一下,但这没什么用。

我做错了什么?

1 个答案:

答案 0 :(得分:5)

您需要传入上次投票时的时间戳和密钥。假设您要从第一页到第二页,那么您需要知道第1页上次轮询的时间戳和密钥。

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