Un objet est sauvegardé sur Firebase, et récupéré sur l'application pour afficher les données.
Pour le mettre à jour, changer l'image ou du texte, ajouter dans "FireDatabase" la méthode "updateMovie" (similaire à updateUser)
func updateMovie(_ uid: String, data: [String: Any]) {
moviesCollection.document(uid).updateData(data)
}
Les informations du film peuvent être affichées dans des "textFields", donc modifiées. Un "TapGesture" peut être associé à l'image pour déclencher l'ajout d'une photo. Dans le "DetailsController" sont ajouter l'alerte et l'extension pour l'"imagePicker". Un bouton est ajouté pour déclencher la mise à jour de la fiche.
Il reste a implémenter une méthode "updateMovie()"
func updateMovie() {
guard let uid = FireAuth().myId() else { return }
let date = Date().timeIntervalSince1970
let ref = FireStorage().affiche(uid, date)
FireStorage().sendImageToFirebase(ref, movieImage.image!) { (imageUrl, error) in
if let urlString = imageUrl {
let data: [String: Any] = [
"titre": self.titreTF.text ?? "",
"part": self.partTF.text ?? "",
"year": self.yearTF.text ?? "",
"director": self.directorTF.text ?? "",
"pitch": self.pitchTV.text ?? "",
"movieImageUrl": urlString]
//le document actuel est modifié, faire appel à son uid et non l'uid de user
FireDatabase().updateMovie(self.movieSelected.uid, data: data)
}
self.navigationController?.popViewController(animated: true)
}
}
Pensez aux méthodes pour cacher le clavier et TextFieldDelegate