[英]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.