我的Firebase上具有此当前数据结构
{
"bible-operators": [{
"op-id": 0,
"op-name": "Anonymous",
"bcv": 101001001,
"op-version": 1,
"pass": "none",
"setting1": 1,
"setting2": 2,
"setting3": 3,
"setting4": 4,
"setting5": 5,
"setting6": 6,
"setting7": 7,
"bg": 1
}, ... {
"op-id": 4,
"op-name": "Test User 4",
"bcv": 101001001,
"op-version": 1,
"pass": "pass4",
"setting1": 1,
"setting2": 2,
"setting3": 3,
"setting4": 4,
"setting5": 5,
"setting6": 6,
"setting7": 7,
"bg": 1
}]
}
我尝试使用此功能进行测试更新
function update(op_id, nuname, nuversion, nubcv, nupass) {
firebase.database().ref('operators/' + op_id).set({
"op-name": nuname,
"op-version": nuversion,
pass: nupass,
bcv : nubcv
});
}
我的预期结果是更新提供的新数据,但保留其他没有更新的数据。但是,在调用update之后,所有未提供的数据都已从数据库中删除。 setting1-7
和bg
。
如何运行更新而不丢失没有提供新数据的数据?
谢谢
答案 0 :(得分:2)
函数firebase.database().ref('bible-operators/' + op_id).set()
替换了文档,您必须使用update()
而不是set()
。
尝试:
firebase.database().ref('bible-operators/' + op_id).update({
"op-name": nuname,
"op-version": nuversion,
pass: nupass,
bcv : nubcv
});