您好我遵循了本教程:https://www.youtube.com/watch?v=XIQsQ2injLo
这解释了如何从数据库保存和检索,而不是如何删除。我想知道如何删除属于正在删除的单元格的数据库节点。感谢
答案 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)
}
}
例如,如果我想删除以下值:
我调用我的函数:remove(child: "mixcloudLinks")
如果我想更深入并删除例如"添加":
我需要稍微更改一下这个功能。
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作为我字典的一部分,并且可以在以后删除它:
然后我可以像.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()