我正在尝试使用 firebase 和 swift 制作一个分页过滤列表(但请随意用您最喜欢的编程语言回答),而不过滤客户端上检索到的数据。
假设我有这个结构
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
...
现在我想获取 user-1 的所有匹配项的分页列表,这些匹配项的值为“ok”
我正在做这样的事情
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 后”
有什么建议么?
如果我没记错的话,你可以传入key作为第二个参数返回的第一个项目的queryStarting
。来自文档 https://firebase.google.com/docs/reference/ios/firebasedatabase/api/reference/Classes/FIRDatabaseQuery#-querystartingatvaluechildkey(强调我的):
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 in
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)