从Firebase数据库中删除子项无法正常工作

时间:2017-11-27 07:55:14

标签: ios swift firebase firebase-realtime-database swift4

我正在尝试从firebase中删除一个孩子。这是我得到的

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

    let taskToDelete = groupTask[indexPath.row]

    if editingStyle == UITableViewCellEditingStyle.delete {
        groupTask.remove(at: indexPath.row)

        DataService.instance.REF_GROUPS.child("task").child(taskToDelete.id).removeValue(completionBlock: { (error, refer) in
            if error != nil {
                print(error)
            } else {
                print(refer)
                print("Removed Correctly")
            }
        })
        tableView.reloadData()
    }
}

它正在打印“正确删除”到控制台,但未在firebase中删除子项。还有另一种方法吗?先感谢您。

Firebase数据结构

enter image description here

1 个答案:

答案 0 :(得分:0)

我对它进行了测试并证实了我的怀疑,即使请求失败,错误仍为零。您的首要任务是确保您尝试删除的子ID确实存在(*即您提供了正确的ID)。这似乎是firebase中的一个错误。然而,当使用正确的路径时,我没有删除节点的问题。

检查打开的firebase控制台并在项目中查找数据库菜单。然后打开REF_GROUPS的任何节点,在里面你应该看到" child"在里面的ids。如果这不是您所看到的,那么您需要调整查询以反映Firebase中的结构。

修改 没有看到你的截图,基于你的查询肯定是错误的。你需要

DataService.instance.REF_GROUPS.child("your group id comes here").child("task").child(taskToDelete.id)

尝试打印引用,你应该

https://yourappname.firebaseio.com/groups/-KzVm.../task/-KZvp...