DB 수정
selectedKey라는 전역변수를 만들고 아래의 두 함수를 추가하면 데이터는 수정이 가능하다. 이때 수정하는 부분의 ref함수의 인자에 selectedKey가 삽입된 것을 확인할 수 있다.
Firebase1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| function fn_get_data_one(key) { selectedKey = key; var memoRef = database.ref('memos/' + userInfo.uid + '/' + key).once('value').then(function(snapshot){ var txt = $(".textarea").val(snapshot.val().txt); });
}
function save_data() { var memoRef = database.ref('memos/' + userInfo.uid); var txt = $(".textarea").val();
if ( txt == '') { return; }
if ( selectedKey ) {
memoRef = database.ref('memos/' + userInfo.uid + '/' + selectedKey); memoRef.update({ txt : txt, createDate : new Date().getTime(), updateDate : new Date().getTime(), }) }else{ memoRef.push({ txt : txt, createDate : new Date().getTime() }) } }
|
title이 문장의 맨윗줄만 나오도록 하기 위해 on_child_added의 title변수에 txt.substr(0, txt.indexOf(‘\n’));을 대입하자
Firebase1 2 3 4 5
| function on_child_added(data){ ... var title = txt.substr(0, txt.indexOf('\n')); ... }
|
이번에는 + 버튼을 눌러 메모를 추가할 수 있도록 확인해보자
버튼에 onClick = ‘initMemo();’ 를 추가하고 다음의 함수를 추가하자.
Firebase1 2 3 4
| function initMemo() { $('.textarea').val(''); selectedKey = null; }
|
이제 + 버튼을 누르면 새로운 메모를 입력할 수 있게된다.
이제 데이터가 변경되었을 때 왼쪽 리스트가 변경되도록 해보자
get_momo_list 함수에 아래의 코드를 추가하여 변경에 대한 처리를 추가한다.
Firebase1 2 3 4 5 6 7
| memoRef.on('child_changed', function(data){ var key = data.key; var txt = data.val().txt; var title = txt.substr(0, txt.indexOf('\n')); $("#"+ key + "> .title").text(title); $("#"+ key + "> .txt").text(txt); })
|
이제 삭제기능을 구현해보자
HTML에 다음을 추가하자
Firebase1
| "<a href=\"#!\" onclick=\"fn_delete_data('"+key+"')\" class=\"secondary-content\"><i class=\"material-icons\">grade</i></a>"
|
그리고 다음 함수를 추가하여 삭제기능 구현하자
Firebase1 2 3 4 5 6 7 8 9
| function fn_delete_data(key) { if(!confirm('삭제하시겠습니까')) { return; }
var memoRef = database.ref('memos/' + userInfo.uid + '/' + key); memoRef.remove(); $("#"+key).remove(); }
|