что-то идет не так при попытке обновить строки таблицы после удаления данных Firebase.
Ниже приведен метод, который я использую.
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let delete = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexPath) in
let cell = self.messages[indexPath.row]
let b = cell.msgNo
let action = MyGlobalVariables.refMessages.child(MyGlobalVariables.uidUser!)
action.queryOrdered(byChild: "msgNo").queryEqual(toValue: b).observe(.childAdded, with: { snapshot in
if snapshot.exists() { let a = snapshot.value as? [String: AnyObject]
let autoId = a?["autoID"]
action.child(autoId as! String).removeValue()
self.messages.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .automatic)
} else {
print("snapshot empty")
}}) }
...
return [delete, edit, preview]
}
Сначала я проверил всю логику без включения строки /*action.child(autoId as! String).removeValue()*/
, затем она работает нормально и удаляет строки, как и должно быть. Но как только я добавляю эту строку, она удаляет данные из Firebase, но представление таблицы обновляется странным образом, добавляя новые строки под существующими