【发布时间】:2019-02-04 13:14:26
【问题描述】:
我想从 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 中删除...
【问题讨论】:
-
编辑并添加了异常:)
-
异常来自表格视图或集合视图
-
我正在从集合视图中删除一个项目。所以我该怎么做 ?删除后刷新我的收藏?
-
需要保持数据源与单元格一致——stackoverflow.com/questions/46140824/…
-
我有点想将此标记为Using UpdateChildValues to delete from Firebase 的副本,因为这个概念仍然适用。
标签: swift database firebase firebase-realtime-database