Как получить родителя от ребенка - PullRequest
0 голосов
/ 25 января 2019

Допустим, я обнаружил, что значение в базе данных соответствует значению, введенному пользователем посредством запроса. Как я могу найти родителя этого значения?

Ex. Допустим, я вхожу в 35 как возраст. 35 также находится в базе данных, так как мне получить родителя этого значения (0)? Подчеркнуто на картинке.

Я видел несколько похожих вопросов, но не могу найти правильный ответ на свой вопрос. Кроме того, большинство из них на разных языках.

enter image description here

Вот что я получил до сих пор:

 @IBAction func onDiagnose(_ sender: Any) {
        let ref1 = Database.database().reference(fromURL: "https://agetest.firebaseio.com/")
        let databaseRef = ref1.child("data")
        databaseRef.queryOrdered(byChild: "age").queryEqual(toValue: Int(ageTextField.text!)).observeSingleEvent(of: .value, with: { (snapshot) in
            // if there is data in the snapshot reject the registration else allow it

            if (snapshot.value! is NSNull) {


               print("NULL")

            } else {


                //print(snapshot.value)
                //get parent
                //snapshot.ref.parent?.key! as Any
            }


        }) { (error) in
            print(error.localizedDescription)
        }

    }

1 Ответ

0 голосов
/ 25 января 2019

Когда вы выполняете запрос к базе данных Firebase, потенциально может быть несколько результатов. Таким образом, снимок содержит список этих результатов. Даже если есть только один результат, снимок будет содержать список из одного результата.

Таким образом, вам нужно перебрать дочерние узлы полученного снимка, чтобы получить отдельные результаты:

databaseRef.queryOrdered(byChild: "age").queryEqual(toValue: Int(ageTextField.text!)).observeSingleEvent(of: .value, with: { (snapshot) in
    for child in snapshot.children.allObjects as! [DataSnapshot] {
        print(child.key)     
    }
}) { (error) in
    print(error.localizedDescription)
}

Также см. прослушивание событий значений для списков данных в документации Firebase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...