繁体   English   中英

覆盖数据而不生成新的密钥/节点

[英]Overwrite data without generating new key/node

我试图覆盖我的数据库中的一些数据。 结构很简单,就是:

recipes {
  user_1{
    recipe_1{data}
    recipe_2{data}
  }
  user_2{
    recipe_1{data}
    recipe_2{data}
  }
}

我正在尝试更新一个项目并使用此recipe使用任何更改覆盖它,其中recipe是具有我尝试保存的更新数据的新对象, key是为数据库中的每个项目生成的唯一键。 在数据库本身中,标签recipe_1等将被替换为它们的唯一键。 所以这个路径应该只是替换整个recipe_2而不是添加一个新节点。

firebase.database().ref('recipes/' + userID + "/" + key).set({ recipe });

所以说我试图用这个更新user_1's recipe_2 ,经过之后,数据库结构将是:

data {
  user_1{
    recipe_1{data}
    recipe{
      recipe_2{data}
    }
  }
  user_2{
    recipe_1{data}
    recipe_2{data}
  }
}

如何在更改配方内容的同时覆盖项目并保持数据库结构不变?

您需要从set函数中删除额外的{} ,该函数会在您尝试更新的键值中创建一个新节点。

将您的代码更改为
firebase.database().ref('recipes/' + userID + "/" + key).set(recipe);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM