【发布时间】:2019-07-25 23:50:11
【问题描述】:
我最近一直在开发一个应用程序,但偶然发现了另一个问题(这就是程序员的生活,不是吗?)。作为记录,我正在使用最新版本的 Swift、XCode 和 Firebase。我只想获取父母的直系后代(我的参考)。这是我的 JSON 树:
users
family-name
user-1 // I want this...
pass: abc // but not this ...
user-2 // ... and this
pass: def // ... but not this
events // I skip this specifically in my code
event-1
a: a
b: b
event-2
a: a
b: b
event-3
a: a
b: b
如图树所示,我只想获取 user-1、user-2 和 user-3。
我尝试使用普通查询,但它没有工作 除了获取我想要的查询,我还获取子值。
let query = userRef.queryOrdered(byChild: "users")
query.observe(.value, with: { (snapshot) in
for child in snapshot.children {
let value = snapshot.value as? NSDictionary
for anotherChild in value! {
if "\(key)" == "events" {
print("Let's skip that, since it's just the events sub-tree!")
} else {
// my work goes here
}
我收到六个值返回给我,但我希望有两个。我不知道为什么!提前感谢任何可以提供帮助的人。
【问题讨论】:
-
请注意,正如 Doug 在回答中所述,我不知道“浅”或直接后代值是什么。
-
所以你想要family-name下的所有子键?所以您希望 Firebase 返回字符串 *user-1、user-2、events' 等?如果是这样,您将需要重新考虑您的结构,但其余的很容易。此外,当您读取节点时,它将读取节点密钥以及节点内的其余数据 - 这就是 Firebase 的工作方式。但是,这可能适用于您的情况,只需稍作代码更改或 Firebase 结构更改即可轻松完成。你能澄清一下吗?
-
@jay 是的,我想接收用户 1、用户 2 和事件。我需要什么样的代码更改?
标签: swift firebase firebase-realtime-database