Vlad78
Vlad78

Reputation: 133

Swift firebase get data

How can I get name, quant from this structure:

enter image description here

Im try this:

var handle: DatabaseHandle?
var ref: DatabaseReference?

override func viewDidLoad() {
    super.viewDidLoad()
     ref = Database.database().reference()
     handle = ref?.child("Цитаты").child("Из Книг").child("Дорогой звезд").child("Quote1").observe(.childAdded, with: { (snapshot) in
     let user = snapshot.value
        print(user!) //text from name + 10 + Quote1
    }

When I print snapshot.value it's give me data from Quote1 , but I want to show name in textField and quant in label I try this:

ref = Database.database().reference()
handle = ref?.child("Цитаты").child("Из Книг").child("Дорогой звезд").child("Quote1").observe(.childAdded, with: { (snapshot) in
let user = snapshot.value
if let us = user!["name"] as? String {
  if let quant = user!["quant"] as? String{
    self.quoteTextField.text = us
    self.quotelabel.text = quant
  }
}

And have error. How can I add data from snapshot.value to label and textField?

Upvotes: 1

Views: 56

Answers (2)

DionizB
DionizB

Reputation: 1507

As I was checking your screen, quant is an Int not String, so try this

ref = Database.database().reference()
handle = ref?.child("Цитаты").child("Из Книг").child("Дорогой звезд").child("Quote1").observe(.childAdded, with: { (snapshot) in
       //let username = snapshot.value as? NSDictionary
       let user = snapshot.value as? [String: Any]
       if let us = user!["name"] as? String {
            if let quant = user!["quant"] as? Int {
                 self.quoteTextField.text = us
                 self.quotelabel.text = quant.description
         }
     }
}

Upvotes: 1

Chris Edgington
Chris Edgington

Reputation: 3256

You need to cast the snapshot.value as a dictionary -

let user = snapshot.value as? NSDictionary

You should also consider safely unwrapping your optionals -

let name = user?["name"] as? String ?? ""
let quant = user?["quant"] as? Int ?? 0

Upvotes: 0

Related Questions