我正在尝试覆盖数据库中的某些数据。结构很简单,就是:
recipes {
user_1{
recipe_1{data}
recipe_2{data}
}
user_2{
recipe_1{data}
recipe_2{data}
}
}
我正在尝试更新一项并使用此更改进行覆盖,其中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}
}
}
更改配方内容时,如何覆盖项目并保持数据库结构不变?
答案 0 :(得分:1)
您需要从{}
函数中删除多余的set
,该函数正在您要更新的键值中创建一个新节点。
将代码更改为
firebase.database().ref('recipes/' + userID + "/" + key).set(recipe);