Using UpdateChildValues to delete from Firebase

So the issue here is that

ref.updateChildValues(childUpdates)

requires a [String: AnyObject!] parameter to updateChildValues, and AnyObject! cannot be a nil (i.e. you can't use AnyObject? which is an optional that could be nil)

However, you can do this

let childUpdates = [path1 : NSNull(),
                    path2 : NSNull(),
                    path3 : NSNull(),
                    path4 : NSNull()]

Because AnyObject! is now an NSNull() object (not nil), and Firebase knows that NSNull is a nil value.

Edit

You can expand on this to also do multi-location updates. Suppose you have a structure

items
   item_0
      item_name: "some item 0"
   item_1
      item_name: "some item 1"

and you want update both item names. Here's the swift code.

func updateMultipleValues() {
    let path0 = "items/item_0/item_name"
    let path1 = "items/item_1/item_name"

    let childUpdates = [ path0: "Hello",
                         path1: "World"
    ]

    self.ref.updateChildValues(childUpdates) //self.ref points to my firebase
}

and the result is

items
   item_0
      item_name: "Hello"
   item_1
      item_name: "World"

I think this error is coming from the first line you've provided. You need to specify the type of dictionary. So change it to

let childUpdates: [String : AnyObject?] = [path1: nil, path2: nil,...]