【问题标题】:how to send data via segue firebase using?如何使用 segue firebase 发送数据?
【发布时间】:2019-09-18 10:07:11
【问题描述】:

我有一个函数可以从我的 firebase 数据库接收所有数据,并且数据显示在 tableview 中,当我单击 tableview 单元格时,它会通过 segue 打开一个新窗口,其中包含更多详细信息。如何通过这个从我的 firebase 发送数据?

func getAllFIRData(){
        var ref: DatabaseReference
        ref = Database.database().reference().child("Receitas")

        ref.observe(.value) { (snapshot) in
            self.receitaList.removeAll()
            if let snapShot = snapshot.children.allObjects as? [DataSnapshot]{
                for snap in snapShot{
                    if let mainDict = snap.value as? [String: AnyObject]{
                       -----------> let nomeReceita = mainDict["nomeReceita"] as? String
                       -----------> let tempoReceita = mainDict["tempoPreparo"] as? String
                       -----------> let porcaoReceita = mainDict["porcaoReceita"] as? String
                       -----------> let ingredientesReceita = mainDict["ingredientesReceita"] as? String
                       -----------> let imageURL = mainDict["imageURL"] as? String

                        self.receitaList.append(ReceitaModel(nome: nomeReceita, tempo: tempoReceita, porcao: porcaoReceita, ingredientes: ingredientesReceita, imageURL: imageURL))
                        self.vrTableViewReceita.reloadData()
                    }
                }
            }
        }
    }



    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "proxTela" {
            let svc = segue.destination as! DetailViewController

            let indexPath:IndexPath! = vrTableViewReceita.indexPathForSelectedRow

            svc.vrNomeReceita = nomeReceita <--------
            svc.vrTempoReceita = tempoReceita <--------
            svc.vrPorcaoReceita = porcaoReceita <--------
            svc.vrIngredientesReceita = ingredientesReceita <--------
            svc.vrImageView = imageURL <--------

        }
    }

【问题讨论】:

  • 在构建或执行此代码时是否抛出错误?
  • 有一个答案可能有效,但不确定它是否是 正确 答案。在你的问题中包含结构是个好主意,这样我们就知道要提供什么代码来匹配它。要获取您的 Firebase 结构,请使用 Firebase 控制台->导出 JSON,然后复制并粘贴您的结构的 sn-p。

标签: swift xcode firebase firebase-realtime-database firebase-storage


【解决方案1】:

修复:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "proxTela" {
            let svc = segue.destination as! DetailViewController

            if let indexPath = self.vrTableViewReceita.indexPathForSelectedRow{
                let segueData : ReceitaModel
                segueData = receitaList[indexPath.row]

                svc.nome = segueData.nome!
                svc.tempo = segueData.tempo!
                svc.porcao = segueData.porcao!
                svc.ingredientes = segueData.ingredientes!
                svc.imagem = segueData.imageURL

            }

        }
    }


    override func viewDidLoad() {
        super.viewDidLoad()

        var ref: DatabaseReference
        ref = Database.database().reference().child("Receitas")

        ref.observe(.value) { (snapshot) in
            self.receitaList.removeAll()
            if let snapShot = snapshot.children.allObjects as? [DataSnapshot]{
                for snap in snapShot{
                    if let mainDict = snap.value as? [String: AnyObject]{
                        let nomeReceita = mainDict["nomeReceita"] as? String
                        let tempoReceita = mainDict["tempoPreparo"] as? String
                        let porcaoReceita = mainDict["porcaoReceita"] as? String
                        let ingredientesReceita = mainDict["ingredientesReceita"] as? String
                        let imageURL = mainDict["imageURL"] as? String

                        self.receitaList.append(ReceitaModel(nome: nomeReceita, tempo: tempoReceita, porcao: porcaoReceita, ingredientes: ingredientesReceita, imageURL: imageURL))
                        self.vrTableViewReceita.reloadData()
                    }
                }
            }
        }

【讨论】:

    猜你喜欢
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多