FIREBASE CRUD mettre à jour un objet

Etape 11

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