Javascript 在Firebase中更新删除其他条目

Javascript 在Firebase中更新删除其他条目,javascript,html,firebase,Javascript,Html,Firebase,我试图在他们的日期下输入一些班次。这对19-01很有效,但当我尝试输入20-01时,会保存和删除19-01的条目 有人知道问题是什么,为什么不能让我拥有更多的那棵树 //ROSTERS SAVING //ROSTERS FOR MONDAYS $(function Monday(){ // CREATE A REFERENCE TO FIREBASE var dateMondayRef = new Firebase('https://shiftsapp.firebaseio.com/

我试图在他们的日期下输入一些班次。这对19-01很有效,但当我尝试输入20-01时,会保存和删除19-01的条目

有人知道问题是什么,为什么不能让我拥有更多的那棵树

//ROSTERS SAVING 
//ROSTERS FOR MONDAYS
$(function Monday(){

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

  // REGISTER DOM ELEMENTS
  var date1Field = $('#date1Input');
  var emp1put1Field = $('#emp1Input1');
  var enter1Field = $('#enter1');

  // LISTEN FOR KEYPRESS EVENT
  enter1Field.keypress(function (e) {
    if (e.keyCode == 13) {
      //FIELD VALUES
      var dateMonday = date1Field.val();
      var emp1put1 = emp1put1Field.val();
      var enter1 = enter1Field.val();

      //SAVE DATA TO FIREBASE AND EMPTY FIELD
      var obj1 = {};
      obj1[dateMonday] = {
        emp1:emp1put1,
      }

      dateMondayRef.set(obj1);
      enter1Field.val('');
    }
  });

});

$(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 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 enter2 = enter2Field.val();

      //SAVE DATA TO FIREBASE AND EMPTY FIELD
      var obj = {};
      obj[dateTuesday] = {
        emp1:emp1put2
      }

      dateTuesdayRef.set(obj);
      enter2Field.val('');
    }
  });

});

这是因为在同一个ref(您的
dateMondayRef
dateTuesdayRef
两个点指向同一个Firebase节点时,您使用Firebase的
set
方法而不是
update

如上所述,
set

写入或替换数据

换句话说,当您在ref上调用
set
时,您指示firebase在该位置写入(或用存储在该位置的任何数据替换)作为参数传递的对象

您可以在此ref上使用
update
(但这将保留
floster/$dateMonday
上存在但未包含在新对象中的任何子键),或者获取对
dateMonday
节点的引用,并在该节点上调用
set

dateMondayRef.update(obj1)
dateTuesdayRef.update(obj2)
// or
dateMondayRef.child(dateMonday).set({emp1: ...})
dateTuesdayRef.child(dateTuesday).set({emp1: ...})

这是因为您在同一个ref上使用Firebase的
set
方法而不是
update
(您的
dateMondayRef
dateTuesdayRef
都指向同一Firebase节点)

如上所述,
set

写入或替换数据

换句话说,当您在ref上调用
set
时,您指示firebase在该位置写入(或用存储在该位置的任何数据替换)作为参数传递的对象

您可以在此ref上使用
update
(但这将保留
floster/$dateMonday
上存在但未包含在新对象中的任何子键),或者获取对
dateMonday
节点的引用,并在该节点上调用
set

dateMondayRef.update(obj1)
dateTuesdayRef.update(obj2)
// or
dateMondayRef.child(dateMonday).set({emp1: ...})
dateTuesdayRef.child(dateTuesday).set({emp1: ...})

这两种方法都不起作用,数据库仍会删除前一种方法您是否在
周一
周二
功能中都使用了这些方法之一?我对示例进行了编辑,使其更加明确。这两种方法都不起作用,数据库仍会删除前一种方法。您是否在
周一
周二
函数中都使用了这些方法之一?我已经编辑了我的示例,使其更加明确。