【问题标题】:Removing a child from Firebase Database not working从 Firebase 数据库中删除孩子不起作用
【发布时间】:2017-11-27 07:55:14
【问题描述】:

我正在尝试从 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 数据结构

【问题讨论】:

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


    【解决方案1】:

    我对其进行了测试,它证实了我的怀疑,即使请求失败,错误也为零。您的首要任务是确保您尝试删除的子 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...
    

    【讨论】:

    • 是的,这就是问题所在。谢谢
    猜你喜欢
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 2018-08-19
    • 2017-08-12
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多