在Swift项目上检索Firebase图像的正确方法

时间:2019-06-04 08:46:51

标签: swift firebase firebase-realtime-database tableview

我正在设置一个项目,我想在其中从Firebase数据库中检索数据并出现在TableView中。 对于Strings,我能够检索到但形成图像却非常困难,这主要是因为我缺乏知识。正在检索Firebase中的图像。

这是一个Firebase项目,NoSql和Swift。

文件1:

   fileprivate var items: [ItemInfo]! = [("Titulo","Description","email","Linkdetalhes","telefone","Coordenates","Rating","photo")]
    override func viewDidLoad() {
    super.viewDidLoad()

    switch clickedButton {
    case 1:
        items.removeAll()


        (UIApplication.shared.delegate as! AppDelegate).fireBaseRef.observe(.value, with: { snapshot in
            let dictRoot = snapshot.value as? [String : AnyObject] ?? [:]
            let dictAliances = dictRoot["Aliances"] as? [String: AnyObject] ?? [:]
            print(dictAliances.count)
            //new strategy for image
            for key in Array(dictAliances.keys) {
                let alianceDic = dictAliances[key]


                self.items.append(( alianceDic!["Title"] as! String, alianceDic!["Description"] as! String, alianceDic!["email"] as! String, alianceDic!["Linkdetalhes"] as! String, alianceDic!["telefone"] as! String, alianceDic!["Coordenates"] as! String, alianceDic!["Rating"] as! String, alianceDic!["photo"] as! String))
                self.tableView.reloadData()
                print("**** \(self.items)")
            }
            print(dictAliances)
        })
        self.tableView?.reloadData()


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

    let item = self.items[indexPath.row]
    cell.Title.text = item.Title
    cell.Description.text = item.Description
    cell.Rating.text = item.email

    cell.photo.text = item.photo
    return cell
}

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "exemplo"){

        let vc = segue.destination as! DetalhesViewController


        vc.titulodetalheProduto = self.escolhido.Title
        vc.descriptiondetalheProduto = self.escolhido.Description
        vc.emaildetalheProduto = self.escolhido.email
        vc.linkdetalhesProducto = self.escolhido.Linkdetalhes
        vc.telefonedetalheProduto = self.escolhido.telefone
        vc.locationdetalheProduto = self.escolhido.Coordenates
        vc.ratingdetalheProduto = self.escolhido.Rating
        vc.photodetalheProduto = self.escolhido.photo

    }

文件2:

@IBOutlet weak var photodetalhe: UIImageView!
@IBOutlet weak var titulodetalhe: UILabel!
@IBOutlet weak var ratingdetalhe: UILabel!
@IBOutlet weak var telefonedetalhe: UILabel!
@IBOutlet weak var emaildetalhe: UILabel!
@IBOutlet weak var locationdetalhe: UILabel!
@IBOutlet weak var descriptiondetalhe: UITextView!
@IBOutlet weak var linkdetalhes: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    linkdetalhes.text = linkdetalhesProducto
    titulodetalhe.text = titulodetalheProduto
    ratingdetalhe.text = ratingdetalheProduto
    telefonedetalhe.text = telefonedetalheProduto
    emaildetalhe.text = emaildetalheProduto
    locationdetalhe.text = locationdetalheProduto
    descriptiondetalhe.text = descriptiondetalheProduto
    photodetalhe.image = photodetalheProduto
    // Do any additional setup after loading the view.
}

预期结果是从数据库中的照片收集数据,并在Swift项目中填写UIIamge

0 个答案:

没有答案