有没有办法在Firebase中执行原子删除?

docs

您还可以通过将nil指定为另一个写入操作的值(例如setValue或updateChildValues ...)来删除。通过这种方式进行的同时更新是原子的:所有更新成功或所有更新失败。

但我无法正常工作。我的以下代码返回错误

无法将_SwiftValue类型的对象存储在。只能存储
类型NSNumber,NSString,NSDictionary和NSArray

有什么我想念的地方吗?还是文件写错了?

var topNodeRef = FIRDatabase.database().reference()
var childUpdates: [String:Any?] = [:]

childUpdates.updateValue(nil, forKey: "/owner")
childUpdates.updateValue(nil, forKey: "/pet")

topNodeRef.updateChildValues(childUpdates)

最佳答案

万一其他人遇到相同的问题,我设法通过使用NSNull()而不是nil来解决它

var topNodeRef = FIRDatabase.database().reference()
var childUpdates: [String:Any] = [:]

childUpdates["/owner"] = NSNull()
childUpdates["/pet"] = NSNull()

topNodeRef.updateChildValues(childUpdates)

10-08 01:02