[消]火灾数据库

我试过使用这段代码,但它似乎不起作用。我使用用户选择的名称并将其存储在nameList中。
假设我把布莱克·沃德里夫存储在nameList里。怎么才能只删除这个名字呢?
var nameList = [String](repeating: "", count:100)
func remove() {
print(nameList[countAddNames])
let usernameRef = Database.database().reference().child("Candidate 1").child("alton").child(nameList[countAddNames]);
usernameRef.removeValue();
}发布于 2020-09-13 15:53:13
若要写入或删除节点,必须指定节点的整个路径。因此,要从JSON中删除节点0,请执行以下操作:
let usernameRef = Database.database().reference().child("Candidate 1").child("alton").child("0");
usernameRef.removeValue();或者更短一点:
let usernameRef = Database.database().reference().child("Candidate 1/alton/0");
usernameRef.removeValue();如果您只知道要删除的用户的名称,则需要先查找其索引/完整路径,然后才能删除它。如果您已经在应用程序中拥有数据,则可以在该代码中完成该操作。否则,您可能需要使用数据库查询 (特别是.queryOrderedByValue和.queryEqualToValue)来确定该值在数据库中的位置。
一旦从JSON结构中删除了一个值,Firebase可能就不再识别它为数组了。出于这个原因,强烈建议而不是使用数组作为您所拥有的结构。实际上,我将您的数据建模为一个集合,在JSON中如下所示:
"alton": {
"Jake Jugg": true,
"Blake Wodruff": true,
"Alissa Sanchez": true
}这将自动:
Database.database().reference().child("Candidate 1/alton/Jake Jugg").removeValue()一样容易有关这方面的更多信息,请参见我对如果子级的子元素包含一个值,则使用Firebase查询的回答。
https://stackoverflow.com/questions/63872134
复制相似问题