web-dev-qa-db-fra.com

Comment supprimer de la base de données Firebase

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

8
Magnus

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:

 enter image description here

J'appelle ma fonction: remove(child: "mixcloudLinks")

Si je veux aller plus loin et supprimer par exemple "ajouté":

 enter image description here

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:

 enter image description here

Ensuite, je peux l'utiliser comme .child(MyClassObject.uuid).remove... qui est alors l'identifiant généré automatiquement. 

26
David Seek

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()
0
Mohammad Yunus