Firebase数据更新以保留其他数据

时间:2019-11-29 16:49:59

标签: firebase firebase-realtime-database

我的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-7bg

如何运行更新而不丢失没有提供新数据的数据?

谢谢

1 个答案:

答案 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
});