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

10-09 06:10