[英]firebase android pagination with recyclerview
嘿我正在开发一个应用程序,它将显示我每天在firebase数据库上添加的最新数据。 最新数据应显示在recyclerview的顶部。 以下是firebase上节点的外观
让我们假设目前数据库中有100个节点。 当app打开时,它获得节点100到80中的数据存储。当用户向下滚动时,它获得存储在节点79到59中的更多最新数据,依此类推。
现在我可以通过此查询获得最后20个节点
Query jokesQuery = FirebaseDatabase.getInstance().getReference().child("hindi-jokes").orderByKey().limitToLast(20);
如果我修改查询以限制最后21个项目,我可以获得位置79处的节点的密钥但是如何使用第79个节点密钥来获取下一组节点数据,即从第79个到第59个?
您将使用endAt()
,因为您希望将最后一项返回为您之前获得的“最旧”项。
DatabaseReference jokesRef = FirebaseDatabase.getInstance().getReference().child("hindi-jokes");
Query jokesQuery = jokesRef.orderByKey().endAt(oldestKeyYouveSeen).limitToLast(20);
最oldestKeyYouveSeen
被称为锚。 您需要在代码中自己跟踪:将其设置为您看过的最旧项目的键。
请注意,它将在第一个查询和第二个查询中,因此您必须在代码中明确地将其排除一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.