0 votes

[swift, firebase] Afficher une image dans un ImageView

Bonjour à tous,

je découvre cette communauté Fr. Voila pour ma première question, je rencontre un petit soucis sous Xcode en swift avec firebase.

Je mets en place un système d'inscription, connexion et de profil pour mes débuts en développement d'application IOs. L'ensemble du système est ok, l'utilisateur peut s'inscrire via son adresse mail et je lui associe une image de profil par défaut que je stocke dans la "store base" de firebase, l'ensemble des données sont stockées dans la "database" et l'image est enregistrée dans celle-ci via un URL.

J'arrive à afficher mes données du type email via un label dans un ViewControler mais je n'arrive absolument pas à récupérer l'image via un ImageView et ceci malgré tout les tutos.

Voici mon ViewControler de mon profil :

import UIKit import FirebaseAuth import FirebaseDatabase import FirebaseStorage import FirebaseCore

class ProfilController: UIViewController {

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    tabBarItem = UITabBarItem(title: "Moi", image: UIImage(named: "profil_icon"), tag: 4)
}

@IBOutlet weak var FirstnameLabel: UILabel!
@IBOutlet weak var LastnameLabel: UILabel!
@IBOutlet weak var EmailLabel: UILabel!

@IBOutlet weak var AvatarProfileView: UIImageView!

@IBOutlet weak var LogoutButton2: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    setupButtons()

    if let user = Auth.auth().currentUser {

        let ref = Database.database().reference()
        let userID = Auth.auth().currentUser?.uid

        ref.child("users").child(userID!).observeSingleEvent(of: .value) { (snapshot) in
            let value = snapshot.value as? NSDictionary

            let Firstname = value?["Firstname"] as? String ?? "Prénom"
            self.FirstnameLabel.text = Firstname

            let Lastname = value?["Lastname"] as? String ?? "Nom"
            self.LastnameLabel.text = Lastname

            let Email = value?["Email"] as? String ?? "Adresse mail"
            self.EmailLabel.text = Email
        }

    } else {
        fatalError("aie aie aie aie")
    }
}

func fetchImageFromStorage(){

    let storageReference = Storage.storage().reference()

    storageReference.child("image.jpg").downloadURL { (url, err) in

        if url != nil{

            do{
                let data = try Data(contentsOf: url!)
                let image = UIImage(data: data)

                self.storageImageView.image = image

            }catch{
                print("Something is terribly wrong!")
            }

        }

    }

}

private func setupButtons() {
    LogoutButton2.layer.cornerRadius = 6
}

@IBAction func LogoutButton2(_ sender: UIButton) {
    do
    {
        try Auth.auth().signOut()
        self.dismiss(animated: true, completion: nil)
    }
    catch let error as NSError
    {
        print (error.localizedDescription)
    }
}

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: