我正在尝试制作一个带有防火墙和快捷(但您最喜欢的编程语言可以自由回答)的分页过滤列表,而无需过滤客户端上检索到的数据。
假设我有这个结构
matches
match-1
name: "Match 1"
users
user-1: "ok"
user-2: true
match-2
name: "Match 2"
users
user-1: "ok"
user-2: true
user-3: true
match-3
name: "Match 3"
users
user-1: true
user-2: true
user-3: true
...现在,我想要一个分页的列表,其中列出了具有"ok“值的user-1的所有匹配项。
我在做这样的事
matchesRef
.queryOrdered(byChild: "users/user-1")
.queryEqual(toValue: "ok")
.queryStarting(atValue: "<last-fetched-user-id>")
.queryLimited(toFirst: 5)
.observe(.value, with: { snapshot in
});但它会导致崩溃,因为“无法调用queryStartingAtValue:在queryStartingAtValue或queryEqualToValue之前被调用之后”
有什么建议吗?
发布于 2016-12-09 20:34:31
如果我没有记错,您可以将要返回的第一个项的键作为第二个参数传递给queryStarting。来自文档 (重点雷):
queryStartingAtValue:childKey:用于生成对该位置数据的有限视图的引用。由FIRDatabaseQuery返回的queryStartingAtValue:childKey实例将响应节点上的事件,其值大于startValue,或等于startValue,密钥大于或等于childKey。
因此,在代码中,应该是:
matchesRef
.queryOrdered(byChild: "users/user-1")
.queryStarting(atValue: "ok", childKey: "<last-fetched-user-id>")
.queryLimited(toFirst: 5)
.observe(.value, with: { snapshot inhttps://stackoverflow.com/questions/41065931
复制相似问题