0

I have tableView with just names array. I need to pass data to another view controller with selected row, but I don't need to pass data from cell, but need data from that Id from firebase from selected row (ex. email, phone number... this data is not in the cell).

First VC:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let selectedGuest = guestsList[indexPath.row]
        
    let controller = self.storyboard?.instantiateViewController(identifier: "GuestDetail") as! GuestDetailsViewController
        
    controller.guestUser = selectedGuest
    self.present(controller, animated: true, completion: nil)
}

and second VC where I need to show data from firebase database:

override func viewDidLoad() {
    super.viewDidLoad()
        
    showGuestDetails()
}
    
func showGuestDetails() {
    ref = Database.database().reference().child("userInfo").child(uid!).child("guests")
    ref.queryOrderedByKey().observe(.value) { (snapshot) in
    if snapshot.childrenCount>0{
        self.guestDetail.removeAll()

        for guests in snapshot.children.allObjects as![DataSnapshot]{
            let guestObject = guests.value as? [String: AnyObject]
            let name = guestObject?["guestName"]
            let familyName = guestObject?["guestFamilyName"]
            let phone = guestObject?["guestPhoneNumber"]
            let email = guestObject?["guestEmail"]

            let guest = GuestModel(guestName: name as? String, guestFamilyName: familyName as! String, guestPhoneNumber: phone as? String, guestEmail: email as? String)

            self.phoneNoLabel.text = guest.guestPhoneNumber
            self.emailLabel.text = guest.guestEmail
        }
    }
}
Artem Garmash
  • 146
  • 10
AnDon
  • 11
  • 5
  • I'm not sure I understand correctly, but if you want to know the key for each child node that you're looping over, that'd be available in `guests.key`. – Frank van Puffelen Feb 24 '21 at 15:42

0 Answers0