Передача данных моментального снимка Firebase в элементы UIViewController - PullRequest
0 голосов
/ 08 марта 2019

У меня есть база данных Firebase, где я могу получить снимок определенного пользователя. В XCode у меня есть табличное представление, которое отображает пользователей, и когда я выбрал строку, снимок правильно выводится на консоль. Проблема возникает, когда я пытаюсь передать данные моментального снимка в представление, которое отображается при щелчке строки, в настоящее время я не могу получить конкретные данные от пользователя, который щелкнул, а я получаю данные только от одного только пользователь, и это пользователь, данные которого были добавлены первыми в базу данных. tableviewData

viewdata

Я знаю, что идея передачи значений заключается в следующем:

   override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let snapshot = rideRequest[indexPath.row]

        performSegue(withIdentifier: "AppointmentRequest", sender: snapshot)
        print(snapshot)

    }



    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        if segue.identifier == "AppointmentRequest" {
            if let detailedRideVC = segue.destination as? AppoinemntRequestViewController {
                if let snapshot = sender as? DataSnapshot {
                    if let rideDictionary = snapshot.value as? [String:AnyObject] {
                        if let email = rideDictionary["email"] as? String {
                            if let fullname = rideDictionary["fullname"] as? String {
                                if let status = rideDictionary["Accepted"] as? Bool {
                                    detailedRideVC.requestEmail = email
                                    detailedRideVC.email = email
                                    detailedRideVC.status = status
                                    detailedRideVC.fullname = fullname
                                    //                                let location = CLLocationCoordinate2D(latitude: lat, longitude: long)
                                    //                                detailedRideVC.requestLocation = location
                                    //                                detailedRideVC.driverLocation = self.driverLocation
                                }
                            }
                        }

                    }

                }
            }
        }

во втором контроллере представления я использую следующее, чтобы попытаться представить данные из снимка, однако это не работает:

func setupRequest(){
    let uid = Auth.auth().currentUser?.uid
    Database.database().reference().child("users").child(mainUser.key).child("AppointmentRequests").observe(.childAdded){ (snapshot) in
        if let rideDictionary = snapshot.value as? [String:AnyObject] {
            let email = rideDictionary["email"] as? String
            let style = rideDictionary["styles"] as? String
            let date = rideDictionary["date"] as? String
            let fullname = rideDictionary["fullname"] as? String
            let time = rideDictionary["time"] as! String
            let shopname = rideDictionary["shopname"] as? String
            let phone = rideDictionary["phone"] as? String
            let cost = rideDictionary["cost"] as! Double
            let clientImage = rideDictionary["clientID"] as? String
            let status = rideDictionary["Accepted"] as? Bool

            if self.status == true {
                self.appointButton.isEnabled = false
                self.appointButton.setTitle("Accepted", for: .normal)
            } else {
                self.appointButton.isEnabled = true
                self.appointButton.setTitle("Accept", for: .normal)
            }

            self.shopName.text = email
            self.appointmentDateTime.text = date
            self.clientName.text = fullname
            self.styleName.text = "Style:" + " " + style!
            self.styleTime.text = time
            self.ShopIs.text = shopname
            self.styleCost.text = "USD" + "$" + "\(String(describing: cost))"
            self.shopNumber.text = "Tel:" + " " + phone!
            let ref = Storage.storage().reference(withPath: "users/" + clientImage! + "/avatar.jpeg");

            ref.downloadURL(completion: { (url, error) in
                if (url != nil)
                {
                    self.clientProfilePic.kf.setImage(with: url);
                }
            })

        }

    }

Любая помощь в исправлении этого будет принята с благодарностью.

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