使用UpdateChildValues从Firebase中删除

我正尝试同时从Firebase数据库中的多个位置删除数据。

Firebase文档陈述:

“删除数据最简单的方法就是调用removeValue对数据位置的引用,也可以通过指定nil作为另一个写操作的值来删除,比如setValue或updateChildValues,可以用updateChildValues多个孩子在一个单一的API调用“。

我的代码是

let childUpdates = [path1 : nil, path2 : nil, path3 : nil, path4 : nil] ref.updateChildValues(childUpdates) 

所有四个path是string,但我得到一个错误:

“expression的types是不明确的,没有更多的上下文。”

我会假设这是因为nil值,因为如果我用其他任何东西(如Int)replace零,错误消失。

使用updateChildValues从Firebase中删除数据的正确方法是什么? 我们希望它以与Firebase中的removeValue()函数类似的方式工作。 我们宁愿这样做的原因是因为它可以在一个通话中从多个地方删除。

所以这里的问题是这样的

 ref.updateChildValues(childUpdates) 

需要[String:AnyObject!]参数updateChildValues,AnyObject! 不能是零(即你不能使用AnyObject?这是一个可选的可能是零)

但是,你可以做到这一点

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

因为AnyObject! 现在是一个NSNull()对象(不是零),Firebase知道NSNull是一个零值。

我认为这个错误来自您提供的第一行。 你需要指定字典的types。 所以改变它

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