我想在他们约会的时候输入一些班次。这对于19-01工作正常,但是当我尝试进入保存和删除19-01的条目的20-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('');
}
});
});
答案 0 :(得分:2)
这是因为您在同一参考号中使用了Firebase的set
方法而不是update
(您的dateMondayRef
和dateTuesdayRef
都指向同一个Firebase节点。)
正如in the docs所述,set
将
写或替换数据
换句话说,当您在ref上调用set
时,指示firebase在此位置写入(或替换可能存储在那里的任何数据)作为参数传递的对象。
您可以在此引用上使用update
(但这会保留roster/$dateMonday
中出现但未包含在新对象中的任何子密钥)或获取对{{{}的引用1}}节点,并在其上调用dateMonday
。
set