Как удалить несколько путей в Firebase с помощью Swift в одной транзакции - PullRequest
0 голосов
/ 29 августа 2018

У меня есть элемент, который я хочу удалить из 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 ...

1 Ответ

0 голосов
/ 29 августа 2018

Похоже, исключение, которое вы видите, является результатом успешного удаления детей. Если у вас есть какой-то тип опорного наблюдателя, населяющий ваше представление коллекции, убедитесь, что вы обновляете источник данных для отражения удаленных детей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...