首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用from从firebase数据库中删除特定值

使用from从firebase数据库中删除特定值
EN

Stack Overflow用户
提问于 2020-09-13 14:52:50
回答 1查看 309关注 0票数 0

[消]火灾数据库

我试过使用这段代码,但它似乎不起作用。我使用用户选择的名称并将其存储在nameList中。

假设我把布莱克·沃德里夫存储在nameList里。怎么才能只删除这个名字呢?

代码语言:javascript
复制
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();
    }
EN

Stack Overflow用户

回答已采纳

发布于 2020-09-13 15:53:13

若要写入或删除节点,必须指定节点的整个路径。因此,要从JSON中删除节点0,请执行以下操作:

代码语言:javascript
复制
let usernameRef =  Database.database().reference().child("Candidate 1").child("alton").child("0");
usernameRef.removeValue();

或者更短一点:

代码语言:javascript
复制
let usernameRef =  Database.database().reference().child("Candidate 1/alton/0");
usernameRef.removeValue();

如果您只知道要删除的用户的名称,则需要先查找其索引/完整路径,然后才能删除它。如果您已经在应用程序中拥有数据,则可以在该代码中完成该操作。否则,您可能需要使用数据库查询 (特别是.queryOrderedByValue.queryEqualToValue)来确定该值在数据库中的位置。

另见:快速删除Firebase中的特定子节点

一旦从JSON结构中删除了一个值,Firebase可能就不再识别它为数组了。出于这个原因,强烈建议而不是使用数组作为您所拥有的结构。实际上,我将您的数据建模为一个集合,在JSON中如下所示:

代码语言:javascript
复制
"alton": {
  "Jake Jugg": true,
  "Blake Wodruff": true,
  "Alissa Sanchez": true
}

这将自动:

  1. 防止重复,因为根据定义,每个名称只能出现一次。
  2. 使删除候选人的名字像Database.database().reference().child("Candidate 1/alton/Jake Jugg").removeValue()一样容易

有关这方面的更多信息,请参见我对如果子级的子元素包含一个值,则使用Firebase查询的回答。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63872134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档