FIREBASE CRUD mettre à jour le profil

Etape 8

Dans le formulaire du profil, il peut être demandé des informations complémentaires non obligatoires.

Il est possible aussi de changer des informations déjà renseignées.

Notre profil comprend un champ "pseudo", qui peut être renseigné.

Les informations de l'utilisateur sont sur le modèle "User.swift" (sauf email).

Donc pour que le pseudo soit pris en compte, il faut mettre à jour le modèle User, en ajoutant une propriété "pseudo" :

class User {

    var ref: DocumentReference
    var uid: String
    var surname: String
    var name: String
var pseudo: String?
    var profilImageUrl: String?
    var timeStamp: Double?

    init(_ document: DocumentSnapshot) {
        ref = document.reference
        uid = document.documentID
        let data = document.data() ?? [:]
        name = data["name"] as? String ?? ""
        surname = data["surname"] as? String ?? ""
    pseudo = data["pseudo"] as? String ?? ""
        profilImageUrl = data["profilImageUrl"] as? String
        timeStamp = data["timeStamp"] as? Double ?? 0.0
    }
}

Dans la méthode "updateProfile()" du "ProfilController.swift" créée pour ajouter l'image du profil, mettre à jour le tableau "data" des données. Compléter avec tous les champs pour permettre la modification des champs déjà renseignés (sauf l'email) :

func updateProfile(_ image: UIImage) {
        guard let uid = FireAuth().myId() else { return }
        let ref = FireStorage().userProfile(uid) //définit un emplacement pour l'user

        FireStorage().sendImageToFirebase(ref, image) { (url, error) in   //envoi l'image et récupére l'url
            if let urlString = url {
                let data: [String: Any] = ["profilImageUrl": urlString,
                                           "name": self.nameTF.text as Any,
                                           "surname": self.surnameTF.text as Any,
                                           "pseudo": self.pseudoTF.text as Any
                                          ]
                     //mettre à jour le profil = ajout url, pseudo et modif des autres champs
                FireDatabase().updateUser(uid, data: data) 
            }
        }
    }

Vérifier en consultant la console de Firebase.