gpt4 book ai didi

swift - 使用 firebase 过滤分页列表

转载 作者:行者123 更新时间:2023-11-28 12:35:17 24 4
gpt4 key购买 nike

我正在尝试使用 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 的第二个参数返回。来自documentation (强调我的):

queryStartingAtValue:childKey: is used to generate a reference to a limited view of the data at this location. The FIRDatabaseQueryinstance returned by queryStartingAtValue:childKey will respond to events at nodes with a value greater than startValue, or equal to startValue and with a key greater than or equal to childKey.

因此在代码中将是:

matchesRef
.queryOrdered(byChild: "users/user-1")
.queryStarting(atValue: "ok", childKey: "<last-fetched-user-id>")
.queryLimited(toFirst: 5)
.observe(.value, with: { snapshot in

关于swift - 使用 firebase 过滤分页列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com