2016-04-26 65 views
-1

我想在他們的日期下輸入一些班次。這對19-01工作正常,但當我嘗試輸入保存並刪除19-01條目的20-01時。Firebase中的更新刪除其他條目

任何人都知道問題是什麼,爲什麼它不能讓我有更多的一棵樹?

//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(''); 
    } 
    }); 

}); 

回答

2

這是因爲你用火力地堡的set方法,而不是update在同REF(您dateMondayRefdateTuesdayRef都指向同一個火力地堡節點)。

如上所述in the docsset

寫或更換數據

換句話說,當你對你的裁判叫set,您指示火力點,在此位置寫入(或替換可能存儲在那裏的任何數據)作爲參數傳遞的對象。

您可以在此參考使用update(但會保留,這是目前在roster/$dateMonday但不包括在新對象任何子鍵)或搶你的dateMonday節點的引用,並調用該set

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

這兩個都不起作用,數據庫仍然刪除了前一個 – kelliehughesspare

+0

您是否在'Monday'和'Tuesday'函數中使用了其中一種技術?我編輯了我的示例,使其更加明確。 – VonD

+0

是的!是!是!非常感謝你的幫助。 – kelliehughesspare

相關問題