ios - 从 Firebase 数据库中删除子项不起作用

标签 ios swift firebase firebase-realtime-database swift4

我正在尝试将一个 child 从火力基地中移走。这是我得到的

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

最佳答案

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

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

编辑 没有看到你的截图,根据你的查询肯定是错误的。你需要

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

尝试打印引用,你应该得到

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

关于ios - 从 Firebase 数据库中删除子项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506142/

相关文章:

iphone - IOS 通用应用轮换

ios - 是否有可能检测到所有手势都发生在一个地方?

ios - Xcode8.1和Safari 10.0.1没有显示调试或控制台错误?

swift - 针脚反向地理编码

javascript - firebase 云函数异步/等待返回未定义导致函数崩溃

javascript - 如何定位 firebase 中某个节点的子节点?

iphone - HTML 到 PDF 页面的底部边距随着每一页的增加而变大

swift - 如何将 `substring` 更改为 swift 4 中的等效新版本?

swift - 从反向链表中提取值

javascript - 如何从firebase列表中删除项目