仅更新部分对象

时间:2016-05-03 14:25:27

标签: javascript firebase firebase-realtime-database

我在我的数据库中有一个表,我希望能够更改某些部分并保留其他功能,但是它正在更新表,以便两个更改但其他3变为空。有没有办法改变这个?

 $(function Tuesday(){

 // CREATE A REFERENCE TO FIREBASE
 var dateTuesdayRef = new Firebase('https://shiftsapp.firebaseio.com/roster');

 // REGISTER DOM ELEMENTS
 var date2Field = $('#date2Input');
 var emp1put2Field = $('#emp1Input2');
 var emp2put2Field = $('#emp2Input2');
 var emp3put2Field = $('#emp3Input2');
 var emp4put2Field = $('#emp4Input2');
 var emp5put2Field = $('#emp5Input2');
 var enter2Field = $('#enter2');

 // LISTEN FOR KEYPRESS EVENT
 enter2Field.keypress(function (e) {
   if (e.keyCode == 13) {
     //FIELD VALUES
     var dateTuesday = date2Field.val();
     var emp1put2 = emp1put2Field.val();
  var emp2put2 = emp2put2Field.val();
  var emp3put2 = emp3put2Field.val();
  var emp4put2 = emp4put2Field.val();
  var emp5put2 = emp5put2Field.val();
  var enter2 = enter2Field.val();

  //SAVE DATA TO FIREBASE AND EMPTY FIELD
    var obj2 = {};
    obj2[dateTuesday] = {
    emp1:emp1put2, 
    emp2:emp2put2,
    emp3:emp3put2, 
    emp4:emp4put2, 
    emp5:emp5put2
    }

    dateTuesdayRef.child(dateTuesday).set({emp1:emp1put2, 
    emp2:emp2put2, 
    emp3:emp3put2, 
    emp4:emp4put2, 
    emp5:emp5put2});
    enter2Field.val('');
    }
});

    });

2 个答案:

答案 0 :(得分:0)

从服务器获取要保持不变的内容的值,并在设置对象时将其反馈。您也可以使用自定义函数自动填充未建议的值,就像我建议的那样。

答案 1 :(得分:0)

Firebase guide on saving data

顶部的表格中
  

set( ):将数据写入或替换为已定义的路径,例如messages / users /

     

update( ):更新已定义路径的部分密钥,而不替换所有数据

因此,如果您拨打update()而不是替换,则只会更改您传入的属性的值,并保留其他未修改的值。