gpt4 book ai didi

ios - Firebase queryEquals 不返回 Swift 中的值

转载 作者:行者123 更新时间:2023-11-30 12:48:44 25 4
gpt4 key购买 nike

我的 Firebase 结构如下所示:

- key1
-key2
-key3:value
-key4:value
-key5:value
-key6:value

我希望返回 key3 的值等于特定字符串的记录。

let ref = FIRDatabase.database().reference()
let path = "Object/key1/key2"

ref.child(path).queryOrdered(byChild: "key3").queryEqual(toValue: "myvalue").observeSingleEvent(of: .value, with: {(snapshot) in

以上返回 NULL。如果我删除 queryEqual,则会返回所有记录。我已经三次检查“myvalue”在 FB 和通话中是否匹配。

key1key2 发生变化时,我循环调用 FB。最后,我只希望仅当 key3 等于我在 queryEqual 语句中发送的值时才返回这些记录(key2 下的所有内容)。

要获得全额返回,请参阅下文。我注释掉了我的实际返回过程,仅通过简单的打印进行检查:

ref.child(path).queryOrdered(byChild: "key3").queryEqual(toValue: "mvValue").observeSingleEvent(of: .value, with: {(snapshot) in

for test in snapshot.children
{
print (test)
}

/*if let returnDict = snapshot.value as? NSDictionary
{
helperProtocol.firebaseDidReturn?(returnDict: returnDict, extraDict: extraDict, name:name)
}
else if let returnArray = snapshot.value as? NSArray
{
helperProtocol.firebaseDidReturn?(returnDict: ["array":returnArray], extraDict: extraDict, name:name)
}
else
{
helperProtocol.firebaseDidReturn?(returnDict: nil, extraDict: extraDict, name:name)
}*/
})

最佳答案

问题在于查询路径的深度。从上面我使用的是:

let path = "Object/key1/key2"

路径需要是:

let path = "Object/key1"

因此,即使搜索键 (key3) 位于 key2 下,方法仍是向上一级,如上所示。

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

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