[英]Iterating Firestore Android collection on basis of ID or attribute
我要迭代从集合文档ID开始的集合。
有没有类似下面的方法可以让我们读取以id或attribute id开头的数据?
db.collection("questions").startReadingDocumentAt("02cubnmO1wqyz6yKg571 ").limit(10).get()
要么
db.collection("questions").startReadingWhereEqualTo("questionID","02cubnmO1wqyz6yKg571 ").limit(10).get()
我知道我可以根据ID阅读该DocumentSnapShot,然后可以开始使用lastVisible项进行迭代。 但是花了我两次读操作。 可以一劳永逸地完成。
Firestore-root
|
--- questions (collections)
| |
| --- 02cubnmO1wqyz6yKg571 (questionId document) // myID and my questionID is same
| |
| --- questionId: "02cubnmO1wqyz6yKg571"
| |
| --- title: "Question Title"
| |
| --- date: August 27, 2018 at 6:16:58 PM UTC+3
| |
我已经经历过了
说明
我不想做RecyclerView pagination
。 我想在每次活动开始时加载下一个10个问题 。 因此,我以相同的方式调用查询,但需要保存DocumentSnapShot 。 所以我决定保存问题ID并在此基础上读取数据...
没有:
startReadingDocumentAt("02cubnmO1wqyz6yKg571")
也不
startReadingWhereEqualTo("questionID","02cubnmO1wqyz6yKg571")
在firestore中,但根据您的数据库架构,要解决此问题,可以使用以下查询:
db.collection("questions").
whereGreaterThanOrEqualTo("questionID","02cubnmO1wqyz6yKg571")
.limit(10)
.get()
addOnCompleteListener.(/* ... */)
更多信息在这里 :
创建并返回带有附加筛选器的新查询,该附加筛选器的文档必须包含指定的字段,并且该值应大于或等于指定的值。
您可以使用查询游标执行此操作。 例如:
db.collection("questions")
.orderBy("questionID")
.startAt("02cubnmO1wqyz6yKg571")
.limit(10)
.get()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.