我想从 Firebase 中删除一个存在于多个路径中的元素。
在一次事务中完成此操作被认为是良好的做法?
我进行了搜索,唯一能找到的是,例如:
let dictionary = [ path1 : nil,
path2 : nil ]
DatabaseReference.updateChilds(dictionary)
此外,使用 NSNull() 而不是 nill 也不起作用
但这会引发异常,因为我无法使用更新方法来删除子项。
如果有帮助,我们将不胜感激。
编辑:
我遇到的异常:
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:第 0 节中的项目数无效。更新 (1) 后现有节中包含的项目数必须等于更新之前该部分中包含的项目数 (1),加上或减去从该部分插入或删除的项目数(0 插入,1 删除)以及加上或减去移入或移出该部分的项目数 ( 0 人入住,0 人搬出)。
单击按钮后,该对象将被删除,并激活连接到此函数的segue:
@IBAction func unwindFromDeleteSegue(segue: UIStoryboardSegue)
{
if (prodToLoad != nil)
{
for cell in ProductsCollection.visibleCells as! [ProductsCollectionViewCell]
{
if ( cell.productUniqueID == prodToLoad?.UniqueID())
{
let indexPath = self.ProductsCollection.indexPath(for: cell)
_ = self.ProductsCollection.numberOfItems(inSection: 0)
ProductsCollection.deleteItems(at: [indexPath!])
}
}
}
ProductsCollection.reloadData()
}
编辑:
项目现已从集合中正确删除,但仍未从 Firebase 中删除...
最佳答案
看起来您看到的异常是子项被成功删除的结果。如果您有某种类型的引用观察者填充您的 Collection View ,请确保您正在更新数据源以反射(reflect)已删除的子项。
关于swift - 如何在一笔事务中使用 Swift 删除 Firebase 中的多个路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52082678/