我可以从Firebase中删除密钥并更新表格。然而,一旦我到达最后一个,细胞就不会被移除。我在每次删除后都计算了表中的数组,但它显示尽管数据库删除了密钥,但总有一个数组。只有在我重新启动应用程序之后,该表才为空。我看过这个答案:Swift: 'attempt to delete row 0 from section 0 which only contains 0 rows before the update'和refresh tableView after deleting cell,但它并没有解决我的问题。
这是我的commit editingStyle
:
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let attendee = AttendeeManager.shared.attendees[indexPath.row]
let databaseRef = Database.database().reference(withPath: "users/\(uid)/meetList/\(attendee.key!)")
databaseRef.removeValue(completionBlock: { (_, _) in
print(AttendeeManager.shared.attendees.count)
self.tableView.reloadData()
})
}
}
这是我的数据结构示例:
{
"users": {
"Juoiuf0N6FNDn3rYlM6X6UK62": {
"meetList": {
"DCVBHGVnvjfgvmfkgjgwgkgjffjg": true,
"C076OYmVTzJF22HB3ggjftY2XpED2": true,
"DhkgjrlorTKKjhrgkegfwmdhffwn": true
}
}
}
}
注意:AttendeeManager
是管理Attendee
对象的单身人士。