У меня есть элемент, который я хочу удалить из Firebase, который существует по нескольким путям.
Что считается хорошей практикой для достижения этой цели в одной транзакции?
Я искал, и единственное, что я мог найти, было, например, это:
let dictionary = [ path1 : nil,
path2 : nil ]
DatabaseReference.updateChilds(dictionary)
Кроме того, использование NSNull () вместо nill также не работало
Но это вызывает исключение, поскольку я не могу использовать метод обновления для удаления дочерних элементов.
Помощь будет оценена.
Edit:
Исключение, которое я получаю:
*** Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Недопустимое обновление: недопустимое количество элементов в разделе 0. Количество элементов, содержащихся в существующем разделе после обновления (1), должно быть равно количество элементов, содержащихся в этом разделе до обновления (1), плюс или минус количество элементов, вставленных или удаленных из этого раздела (0 вставлено, 1 удалено), плюс или минус количество элементов, перемещенных в или из этого раздела ( 0 переехал, 0 перешел).
Объект удаляется после нажатия кнопки, и он активирует переход, связанный с этой функцией:
@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()
}
Edit:
Элементы теперь правильно удаляются из коллекции, но все еще не удаляются из Firebase ...