Bonjour, j'ai suivi ce tutoriel: https://www.youtube.com/watch?v=XIQsQ2injLo
Cela explique comment enregistrer et récupérer à partir de la base de données, mais pas comment supprimer. Je me demande comment supprimer le nœud de base de données qui appartient à la cellule en cours de suppression. Merci
Modifier. Code mis à jour pour Swift 3 et Swift 4.
J'utilise toujours le gestionnaire de suppression avec achèvement:
static let ref = Database.database().reference()
static func remove(child: String) {
let ref = self.ref.child(child)
ref.removeValue { error, _ in
print(error)
}
}
Donc, par exemple si je veux supprimer la valeur suivante:
J'appelle ma fonction: remove(child: "mixcloudLinks")
Si je veux aller plus loin et supprimer par exemple "ajouté":
J'ai besoin de changer un peu la fonction.
static func remove(parentA: String, parentB: String, child: String) {
self.ref.child("mixcloudLinks").child(parentA).child(parentB).child(child)
ref.removeValue { error, _ in
print(error)
}
}
Appelé comme:
let parentA = "DDD30E1E-8478-AA4E-FF79-1A2371B70700"
let parentB = "-KSCRJGNPZrTYpjpZIRC"
let child = "added"
remove(parentA: parentA, parentB: parentB, child: child)
Cela supprimerait uniquement la clé/valeur "ajoutée"
MODIFIER
En cas d’autoID, vous devez enregistrer l’autoID dans votre dictionnaire pour pouvoir l’utiliser plus tard.
C'est par exemple une de mes fonctions:
func store(item: MyClassObject) {
var item = item.toJson()
let ref = self.ref.child("MyParentFolder").childByAutoId()
item["uuid"] = ref.key // here I'm saving the autoID key into the dictionary to be able to delete this item later
ref.setValue(item) { error, _ in
if let error = error {
print(error)
}
}
}
Parce qu'alors, j'ai l'autoID dans mon dictionnaire et je peux le supprimer plus tard:
Ensuite, je peux l'utiliser comme .child(MyClassObject.uuid).remove...
qui est alors l'identifiant généré automatiquement.
nous pouvons stocker l'identifiant généré aléatoirement en tant qu'identifiant utilisateur dans la base de données et le récupérer pour le supprimer
par exemple :
let key = ref?.childByAutoId().key
let post = ["uid": key,
"name": myName,
"task": myTask]
ref?.child(key!).setValue(post)
afin de supprimer setvalue de l'id à nil pour, par exemple. :
var key = [string]()
ref?.child(key[indexPath.row]).setValue(nil)
key.remove(at: indexPath.row)
myArray.remove(at: indexPath.row)
myTable.reloadData()