gpt4 book ai didi

ios - Firebase queryOrderedbyChild 不返回 Null 值

转载 作者:行者123 更新时间:2023-11-30 12:22:41 24 4
gpt4 key购买 nike

我有一个根据用户年龄搜索用户的查询:

self?.ref.child("users").queryOrdered(byChild: "age").queryStarting(atValue: "18").queryEnding(atValue: "25").observeSingleEvent(of: .childAdded, with:  { (snapshot) in
print(snapshot)

我的 Firebase 结构是这样的:

users
-> uid1
-> age : "18"
-> name : "Lisa"
-> ...
-> uid2
-> age : "18"
-> name : "Elizabeth"
-> ...

在我的数据库中有两个人的年龄:“18”。

当 queryStartingAtValue 为“18”时,一切正常。

当我将 queryStartingAtValue 更改为不存在的年龄(例如“19”)时,会出现此问题。

确实没有返回任何结果,数据似乎被阻塞在查询内部。

您知道此查询有什么问题吗?

谢谢。

最佳答案

在您显示的数据中,没有 19 或更高的节点,因此查询不匹配任何节点。在这种情况下,.childAdded 事件不会触发。

如果您想检测这种情况,则必须监听 .value 事件,即使没有子项,该事件也会触发。但在这种情况下,您将为所有匹配的子项获得一个 .value 事件,因此您需要 loop over the child nodes :

self?.ref.child("users")
.queryOrdered(byChild: "age").queryStarting(atValue: "18")
.queryEnding(atValue: "25")
.observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot.exists())
for child in snapshot.children {
...
}

关于ios - Firebase queryOrderedbyChild 不返回 Null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44598870/

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