我在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()
进行了改组,但这并没有太大作用。我究竟做错了什么?
最佳答案
您需要同时传递时间戳和上次轮询的密钥。假设您要从第一页转到第二页,那么您需要知道第一页的最后一次轮询的时间戳和关键字。
pollQuery = rootRef.child(getString(R.string.poll_ref))
.orderByChild("timestamp")
.startAt(timestampFromLastPollOfPage1, keyFromLastPollOfPage1)
.limitToFirst(numPollsToLoad);
关于android - Android Firebase查询StartAt(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41390128/