diff --git a/.gitignore b/.gitignore index 40b878d..563c47e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -node_modules/ \ No newline at end of file +node_modules/ + +env.* \ No newline at end of file diff --git a/dummy.json b/dummy.json index 4bcbbba..57716ee 100644 --- a/dummy.json +++ b/dummy.json @@ -1,38 +1,34 @@ { - "gameData": [ - { - "game1": { - "name": "kim", - "score": "0" - }, - "game2": { - "name": "k22", - "score": "2" - }, - "game3": { - "name": "k33", - "score": "3" - }, - "game4": { - "name": "k33", - "score": "3" - } + "winnerData": { + "game1": { + "name": "kim", + "score": 10 + }, + "game2": { + "name": "lee", + "score": 2 + }, + "game3": { + "name": "yoon", + "score": 3 + }, + "game4": { + "name": "choi", + "score": 3 } - ], - "userData": [ - { - "kim": { - "game1": 1, - "game2": 2, - "game3": 3, - "game4": 4 - }, - "lee": { - "game1": 11, - "game2": 22, - "game3": 33, - "game4": 44 - } + }, + "usersData": { + "kim": { + "game1": 1, + "game2": 2, + "game3": 3, + "game4": 4 + }, + "lee": { + "game1": 11, + "game2": 22, + "game3": 33, + "game4": 44 } - ] + } } diff --git a/firebase/firebase.js b/firebase/firebase.js new file mode 100644 index 0000000..3ba89ed --- /dev/null +++ b/firebase/firebase.js @@ -0,0 +1,64 @@ +import { initializeApp } from 'https://www.gstatic.com/firebasejs/10.4.0/firebase-app.js'; +import { + getDatabase, + ref, + set, + update, + get, + remove, + child, + onChildAdded, +} from 'https://www.gstatic.com/firebasejs/10.4.0/firebase-database.js'; +import { firebaseConfig } from '../env.js'; + +// Initialize Firebase +const app = initializeApp(firebaseConfig); + +const db = getDatabase(app); +const dbRef = ref(getDatabase()); + +// update(ref(db, 'gameData'), { +// game55: { +// name: 'lpupggdate', +// score: '100', +// }, +// }); + +// set(ref(db, 'gameData'), { +// game433: { +// name: 'yooaa', +// score: '121', +// }, +// }); + +//database : 수정할 데이터베이스경로 +//newDatat : 수정할 데이터 내용 +export const addNewData = (database, newData) => { + set(ref(db, database), newData); + console.log('add후 : '); + getData('usersData'); +}; + +export const updateData = (database, newData) => { + update(ref(db, database), newData); + console.log(' updateData 후 : '); + getData('winnerData'); +}; +export const deleteData = database => { + remove(ref(db, database)); + console.log(' deleteData 후 : '); + getData('usersData'); +}; +export const getData = database => { + get(child(dbRef, database)) + .then(snapshot => { + if (snapshot.exists()) { + console.log(snapshot.val()); + } else { + console.log('No data available'); + } + }) + .catch(error => { + console.error(error); + }); +}; diff --git a/index.html b/index.html index 5c3b4a9..7f93d7d 100644 --- a/index.html +++ b/index.html @@ -36,6 +36,11 @@ + + + + + diff --git a/index.js b/index.js index 169dd06..1557989 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,6 @@ import dummyData from './dummy.json' assert { type: 'json' }; import getDataFromFireBase from './dataStore.js'; +import { addNewData, updateData, getData, deleteData } from './firebase/firebase.js'; //firebase에 데이터 추가 const $input = document.querySelector('.modal'); const $container = document.querySelector('.container'); @@ -78,4 +79,34 @@ function logout() { } } +// firebase테스트 +const newWinnerData = { + //game2에 신기록 세운 new user data + // game2: { + name: 'doraemon', + score: 991, + // }, +}; +const newUserData = { + // 새로운 참여자가 생긴경우 파라미터 database에 유저명을 보내줘야함! 따로 보간법 필요 + // 그 새로운 유저의 게임 결과 + // 아직 안한 게임에 대해선 초기화값 0 필요 + game1: 11, + game2: 22, + game3: 33, + game4: 44, +}; + +const $fbset = document.querySelector('.fb_test_set'); +const $fbupdate = document.querySelector('.fb_test_update'); +const $fbdelete = document.querySelector('.fb_test_delete'); +const $fbget = document.querySelector('.fb_test_get'); +const $fbget_winner = document.querySelector('.fb_test_get_winner'); + +$fbset.addEventListener('click', () => addNewData('usersData/park', newUserData)); //유저명 임의로 park로 지정함 +$fbupdate.addEventListener('click', () => updateData('winnerData/game2', newWinnerData)); +$fbdelete.addEventListener('click', () => deleteData('usersData/lee')); +$fbget.addEventListener('click', () => getData('usersData')); +$fbget_winner.addEventListener('click', () => getData('winnerData')); + export default globalState; diff --git a/package-lock.json b/package-lock.json index 29cfca0..0101892 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,7 @@ "license": "ISC", "dependencies": { "firebase": "^10.7.1" - }, - "devDependencies": {} + } }, "node_modules/@fastify/busboy": { "version": "2.1.0",