Получить детей детей в Firebase, используя Swift - PullRequest
0 голосов
/ 14 мая 2019

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

Users

 -LddrOHGdBf_GcPrcvYn

    FirstName: Mike

    LastName: Smith

    username: m@m.com

У меня переполнение стека, и, кажется, ничто не может ответить на этот вопрос, но я знаю, что это должно быть легко.

import UIKit
import FirebaseDatabase

class CustProfileViewController: UIViewController {
var ref: DatabaseReference?
var tempName = ""
var tempFirstName = ""
@IBOutlet weak var username: UITextField!
@IBOutlet weak var firstName: UITextField!
@IBOutlet weak var editAddressButton: UIButton!
override func viewDidLoad() {
    super.viewDidLoad()
    ref = Database.database().reference()
    username.text = "m@m.com"
}

@IBAction func editAddressButtonPressed(_ sender: Any) {
    self.ref?.child("Users").queryOrdered(byChild: "username").queryEqual(toValue: username.text!).observe(.value, with: { (snapShot) in
        if (snapShot.value! is NSNull) {
        print("nothing found")
    } else {
        print("found it!")
            print(snapShot)
            let snapShotValue = snapShot.value as! NSDictionary
            let fName = snapShotValue["FirstName"] as? String
            self.firstName.text = fName
            print(self.firstName.text!)

        }
    })
}

}

Я ожидаю, что текстовое поле firstName будет заполнено именем fName, но оно возвращает нулевое значение.

1 Ответ

0 голосов
/ 14 мая 2019

Можно попробовать

@IBAction func editAddressButtonPressed(_ sender: Any) {
    self.ref?.child("Users").queryOrdered(byChild: "username").queryEqual(toValue: username.text!).observe(.value, with: { (snapShot) in
    if !snapShot.exists() {
         print("nothing found")
    } else {
        print("found it!")
            print(snapShot)
            let snapShotValue = snapShot.value as! [String:[String:Any]]
            Array(snapShotValue.values).forEach {
               let fName = $0["FirstName"] as! String 
               print(fName)
            }

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