Привет, Берк, и добро пожаловать в StackOverflow.Чтобы получить определенные элементы в Firebase без получения всех данных, вам необходимо изменить ссылку на базу данных.Думайте о ссылке как о местоположении в вашем дереве JSON.Если вы хотите конкретный элемент, вы должны указать это местоположение в вашей ссылке при его создании.Например.Если бы у меня были пользователи, но я хотел указать только одного пользователя, я мог бы сделать это:
let userRef = Database.database().reference().child("Users").child(user.uid)
Неясно, на что указывает ваша ссылка выше, но, возможно, добавив
.child("123").child("states").child("002")
на вашу ссылку вы получите то, что вам нужно.
Edit:
var ref = Database.database().reference().child("123")
получит весь 123 узел, так что вы можете удалить итератор внутри наблюдения и получить доступ к дочерним узлам с помощью
let titles = snapshot.childSnapshot(forPath: "titles")
Кодирование Пример извлечения данных:
private func getData() {
let ref = Database.database().reference().child("akillipriz-stechome").child("123")
ref.observeSingleEvent(of: .value, with: {(_ snapshot: DataSnapshot) -> Void in
for snapshots in snapshot.children.allObjects as! [DataSnapshot] {
guard let dict = snapshots.value as? [String: AnyObject] else { return }
if let states = dict["states"] as? [String: AnyObject] {
print("STATES: \(states)")
} else {
print("States Location is Empty or Nil")
}
if let titles = dict["titles"] as? [String: AnyObject] {
print("TITLES: \(titles)")
} else {
print("States Location is Empty or Nil")
}
}
})
}
![enter image description here](https://i.stack.imgur.com/WcbCS.png)