Ваша переменная ref
указывает на узел posts
:
let postsRef = ref.child("posts")
Затем вы получаете значение этого узла и перебираете его дочерние элементы:
postsRef.observeSingleEvent(of: .value) { (snapshot) in
if snapshot.exists() {
for child in snapshot.children {
Этоозначает, что child
является снимком xPCdfc5d...Oms2
.Затем вы получаете словарь свойств этого дочернего снимка и печатаете там свойство imageURL
:
let snap = child as! DataSnapshot
let dict = snap.value as! [String: Any]
let myPostURL = dict["imageURL"] as! String
print("POST URL: " + myPostURL)
Но если вы внимательно следите в вашем JSON, узел xPCdfc5d...Oms2
не имеетсвойство imageURL
.
У вас есть два динамических уровня ниже posts
, поэтому вам нужно два вложенных цикла над значением:
postsRef.observeSingleEvent(of: .value) { (snapshot) in
if snapshot.exists() {
for userSnapshot in snapshot.children {
let userSnap = userSnapshot as! DataSnapshot
for childSnapshot in userSnap.children {
let childSnap = childSnapshot as! DataSnapshot
let dict = childSnap.value as! [String: Any]
let myPostURL = dict["imageURL"] as! String
print("POST URL: " + myPostURL)
}
}
}
}