Javascript 在Firebase中更新删除其他条目
我试图在他们的日期下输入一些班次。这对19-01很有效,但当我尝试输入20-01时,会保存和删除19-01的条目 有人知道问题是什么,为什么不能让我拥有更多的那棵树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/
//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: ...})
这两种方法都不起作用,数据库仍会删除前一种方法您是否在
周一
和周二
功能中都使用了这些方法之一?我对示例进行了编辑,使其更加明确。这两种方法都不起作用,数据库仍会删除前一种方法。您是否在周一
和周二
函数中都使用了这些方法之一?我已经编辑了我的示例,使其更加明确。