Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to delete from Firebase database

Hi i have followed this tutorial: https://www.youtube.com/watch?v=XIQsQ2injLo

This explains how to save and retrieve from the database, but not how to delete. I am wondering how to delete the database node that belongs to the cell that is being deleted. Thanks

like image 989
Magnus Avatar asked Sep 22 '16 06:09

Magnus


1 Answers

Edit. Code updated for Swift 3 and Swift 4.

I'm always using the remove with completion handler:

static let ref = Database.database().reference()

static func remove(child: String) {

    let ref = self.ref.child(child)

    ref.removeValue { error, _ in

        print(error)
    }
}

So for example if I want to delete the following value:

enter image description here

I call my function: remove(child: "mixcloudLinks")

If I want to go deeper and delete for example "added":

enter image description here

I need to change the function a little bit.

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)   
    }
}

Called like:

let parentA = "DDD30E1E-8478-AA4E-FF79-1A2371B70700"
let parentB = "-KSCRJGNPZrTYpjpZIRC"
let child = "added"
remove(parentA: parentA, parentB: parentB, child: child)

This would delete just the key/value "added"

EDIT

In case of autoID, you need to save the autoID into your Dictionary to be able to use it later.

This is for example one of my functions:

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)
        }
    }
}

Because then I'm having the autoID as part of my dictionary and am able to delete it later:

enter image description here

Then I can use it like .child(MyClassObject.uuid).remove... which is then the automatic generated id.

like image 66
David Seek Avatar answered Oct 11 '22 00:10

David Seek