Get all child value on label in table cell

I want to get all the child Cake values ​​to align the speed label.
I am trying to get, but I can’t organize the code correctly, and I am also an ios login level.

Firebase structure

enter image description here

ViewController

enter image description here

TestTableViewCell

import UIKit
class TestTableViewCell: UITableViewCell {

@IBOutlet weak var cakeImage: UIImageView!
@IBOutlet weak var cakeEngLabs: UILabel!
@IBOutlet weak var cakeUrLabs: UILabel!
@IBOutlet weak var cakeRateLabs: UILabel!

}

* TestTableViewController **

import UIKit
import Firebase

class TestTableViewController: UITableViewController {

@IBOutlet var cakeTableView: UITableView!

var ref = FIRDatabase.database().reference()


struct Cake {
  let cakeEngNames: String
  let cakeUrNames: String
  let cakeImages: UIImage
  var cakeRates: String
}


var cakes = [Cake(cakeEngNames: "almond Cake", cakeUrNames: "badam cake",     cakeImages: UIImage(named:"Maru")!, cakeRates: ""),

         Cake(cakeEngNames: "Jelly Cake", cakeUrNames: "jeli ka cake", cakeImages: UIImage(named:"spices")!, cakeRates: ""),

         Cake(cakeEngNames: "Jelly Cake", cakeUrNames: "jeli ka cake", cakeImages: UIImage(named:"spices")!, cakeRates: ""),

         Cake(cakeEngNames: "Jelly Cake", cakeUrNames: "jeli ka cake", cakeImages: UIImage(named:"spices")!, cakeRates: "")]




override func viewDidLoad() {
super.viewDidLoad()

let AlmondSnap = ref.child("Hyderabad").child("Bakery").child("Cake")
AlmondSnap.observe( .value, with: { (snapshot) in
    let almondRate = snapshot.value as! String
        self.cakes[].cakeRates = almondRate

        print("\(almondRate)")
        self.tableView.reloadData()
})
}

 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.cakes.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "TestTableViewCell", for: indexPath) as! TestTableViewCell

cell.cakeImage.image = self.cakes[indexPath.row].cakeImages
cell.cakeEngLabs.text = self.cakes[indexPath.row].cakeEngNames
cell.cakeUrLabs.text = self.cakes[indexPath.row].cakeUrNames
cell.cakeRateLabs.text = self.cakes[indexPath.row].cakeRates
return cell
}
}
+4
source share
3 answers

, , , cakename , . , ( , , , @dstepan). , .

   var cakes = [Cake]()

    override func viewDidLoad() {
        super.viewDidLoad()

        let almondSnap = ref.child("Hyderabad").child("Bakery").child("Cake")
        almondSnap.observe( .value, with: { (snapshot) in
            if snapshot.hasChildren(){
                for snap in snapshot.children {
                   // snap.key produces name of cake
                   // snap.value produces rate of cake

                    if let node = snap as? FIRDataSnapshot, let rate = node.value as? Int {
                        self.cakes.append(Cake(cakeEngNames: node.key,
                                          cakeUrNames: "badam cake",
                                          cakeImages: UIImage(named:"Maru")!,
                                          cakeRates: String(rate)))
                    }
                }
                self.cakeTableView.reloadData()
            }
        })
    } 
+1

, NSMutableArray,

cell.cakeRateLbl.text = "Almon Cake Rate :\(self.cakesArray[0].objectForKey("Hyderabad").objectAtIndex(0).objectForKey("Bakery").ObjectAtIndex(0).objectForKey("Cake").objectAtIndex(0).valueForKey("Almon_Cake") as! Int)\nAzna Mental Cake Rate :\(self.cakesArray[0].objectForKey("Hyderabad").objectAtIndex(0).objectForKey("Bakery").ObjectAtIndex(0).objectForKey("Cake").objectAtIndex(0).valueForKey("Azna_Mental_Cake") as! Int)\nBlack Forest Cake Rate :\(self.cakesArray[0].objectForKey("Hyderabad").objectAtIndex(0).objectForKey("Bakery").ObjectAtIndex(0).objectForKey("Cake").objectAtIndex(0).valueForKey("Black_Forest_Cake") as! Int)"

cell.cakeRateLbl.text = "Almon Cake Rate :\(self.cakes[indexpath.row].Almond_Cake)\nAzna Mental Cake Rate :\(self.cakes[indexpath.row].Azna_Mental_Cake)\nBlack Forest Cake Rate :\(self.cakes[indexpath.row].Black_Forest_Cake)"
0

Cake node, :

var cakes: [Cake] = []

override func viewDidLoad() {
    super.viewDidLoad()

    let AlmondSnap = ref.child("Hyderabad").child("Bakery").child("Cake")

    AlmondSnap.observe( .value, with: { (snapshot) in

        for item in snapshot.children {

           if let cakeFromDatabase = item as? FIRDataSnapshot {

                let cake = Cake()

                cake.cakeRates = cakeFromDatabase.value // for "Almond_Cake" this will be 800

                cakes.append(cake)

            }

        }

        self.tableView.reloadData()
    })
}

, , , , .

dgrproject-ac0e7
-- Hyderabad
    -- Bakery
        -- Cakes
            -- id1
                -- name: Almond Cake
                -- rate: 800

..

var cakes: [Cake] = [] {
    didSet {
        self.tableView.reloadData()
    }
}

override func viewDidLoad() {
    super.viewDidLoad()

    let AlmondSnap = ref.child("Hyderabad").child("Bakery").child("Cake")

    AlmondSnap.observe( .value, with: { (snapshot) in

        let allCakes = []

        for item in snapshot.children {

            if let cakeFromDatabase = item as? FIRDataSnapshot {

                let cake = Cake()

                cake.cakeEngNames = cakeFromDatabase["name"] as? String
                cake.cakeRates = cakeFromDatabase["rate"] as? Int

                allCakes.append(cake)

            }

        }

        cakes = allCakes
    })
}

didSet tableView , cakes. firebase. allCakes, Cake cakes .

, !

0

Source: https://habr.com/ru/post/1671694/


All Articles