有没有办法在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)