如何从Firebase数据库中删除

时间:2016-09-22 06:43:01

标签: swift firebase firebase-realtime-database

您好我遵循了本教程:https://www.youtube.com/watch?v=XIQsQ2injLo

这解释了如何从数据库保存和检索,而不是如何删除。我想知道如何删除属于正在删除的单元格的数据库节点。感谢

2 个答案:

答案 0 :(得分:26)

编辑。代码已更新为 Swift 3 Swift 4

我总是使用remove with completion处理程序:

static let ref = Database.database().reference()

static func remove(child: String) {

    let ref = self.ref.child(child)

    ref.removeValue { error, _ in

        print(error)
    }
}

例如,如果我想删除以下值:

enter image description here

我调用我的函数:remove(child: "mixcloudLinks")

如果我想更深入并删除例如"添加":

enter image description here

我需要稍微更改一下这个功能。

static func remove(parentA: String, parentB: String, child: String) {

    self.ref.child("mixcloudLinks").child(parentA).child(parentB).child(child)

    ref.removeValue { error, _ in

        print(error)   
    }
}

叫做:

let parentA = "DDD30E1E-8478-AA4E-FF79-1A2371B70700"
let parentB = "-KSCRJGNPZrTYpjpZIRC"
let child = "added"
remove(parentA: parentA, parentB: parentB, child: child)

这将删除键/值"添加"

修改

如果是autoID,您需要将autoID保存到词典中,以便以后能够使用它。

这是我的一个功能:

func store(item: MyClassObject) {

    var item = item.toJson()

    let ref = self.ref.child("MyParentFolder").childByAutoId()
    item["uuid"] = ref.key // here I'm saving the autoID key into the dictionary to be able to delete this item later
    ref.setValue(item) { error, _ in

        if let error = error {

           print(error)
        }
    }
}

因为那时我将autoID作为我字典的一部分,并且可以在以后删除它:

enter image description here

然后我可以像.child(MyClassObject.uuid).remove...那样使用它,然后是自动生成的id。

答案 1 :(得分:0)

我们可以将随机生成的ID作为用户ID存储在数据库中,并检索要删除的ID

例如:

let key = ref?.childByAutoId().key
let post = ["uid": key,
                "name": myName,
                "task": myTask]

    ref?.child(key!).setValue(post)

为了删除 id的setvalue为nil 例如:

 var key = [string]()
ref?.child(key[indexPath.row]).setValue(nil)
    key.remove(at: indexPath.row)
    myArray.remove(at: indexPath.row)
    myTable.reloadData()