如何在我的方案中解决firestore基本查询

时间:2018-05-30 18:43:31

标签: java android firebase google-cloud-firestore

我有一份看起来像下面结构的文件清单。

Posts ->
  ->uuid_1
    -> approvedCount : 5
    -> postMsg : "Hello world 1"
    -> Timestamp : 1234567890
    -> userId : "user1"
  ->uuid_2
    -> approvedCount : 6
    -> postMsg : "Hello world 2"
    -> Timestamp : 1234567891
    -> userId : "user2"

firestore中可能有数千个帖子,而且规模不断增加。

条件 - >在查询中过滤时,approvedCount必须大于5。

现在我想按时间戳的升序每天获取20条记录。我不想重复,所以我今天说我明天就按升序取出了20条第一条记录我想要接下来的20条等等。

我试过像

这样的东西
FirebaseUtil.getFireStoreDB("Posts").whereGreaterThan("approvedCount", 5)
                .limit(20)
                .orderBy("Timestamp", Query.Direction.ASCENDING)
                .get()

但是不知道我将如何每天获取下一篇文章。因为从我知道的文档中你不能用< 2来查询2个字段。或者>否则,使用timestamp和approvedCount

会更容易

1 个答案:

答案 0 :(得分:2)

要解决此问题,您需要使用Paginate Data with Query Cursors,在其中您将找到一个名为startAfter()的非常有用的方法,您可以在其中将{{1}中的最后一个可见元素作为参数传递对象。与官方文档中一样,您应该使用以下代码:

documentSnapshots