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.