[Firebase&Web연동 8] 로그인 한 사용자만 글쓰기 기능구현
● 들어가기 전
▲빨간색 표시는 우리가 ref("thanks") 함수로 생성할 폴더이고 그 밑에 초록색 표시는 push() 함수로 자동 생성되는 글의 고유 pk 값(글 하나하나를 식별하는 식별자)이고 파란색 표시는 user가 가입할때 마다 자동으로 생성되는 user의 pk 값(앞에서 다뤘음)이다. 실습을 통해 자세히 알아보자. 참고로 adflkjlk234~ 이런 문자는 사람이 쓸일이 거의..없기 때문에 아~ firebase에서 자체적으로 만들어 주는 녀석이라고 생각하면 쉽다.
● 실습순서
● 자바스크립트 시간 함수
index.html firebase 초기화 하는 스크립트 바로 위에 tiem.js 경로를 지정하는 스크립트를 넣어준다. 아래와 같이. 정확한 위치는 아래 소스코드 파일을 올려놓았다.
그리고 console.log()로 시간이 string 값으로 잘 나오는지 확인해보자. 변수이름은 time.js 파일 맨 아래에 작성해 두었다. var currentTime = year + month + day + hours + min + sec;
콘솔 로그를 찍는 곳은 어디든 가능하다. 우리는 index.html에서 바로여기!
//유저가 로그인 했는지 안했는지 확인해주는 함수
이곳에 적어서 확인을 해보겠다. 왜나면 페이지가 로딩되면서 바로 userSessoinCheck()를 호출하게 해놓았기 때문이다. 그리고 터미널을 열고 해당 프로젝트 폴더로 가서 firebase serve 명령어를 실행 시킨다음 구글 개발자 창을 보자. http://localhost:5000/로 접속해야한다.
나이스. 잘나온다.
● 로그인 체크하는 함수
● firebase 저장관련 함수
firebase에서 기본적인 쓰기작업을 할때는 set() 함수를 이용해서 지정된 위치에 데이터를 저장한다. 하지만 고유 키값(pk)을 생성한 후 그 하위에 저장시키려면 push(); 함수로 경로를 먼저 만들어 주고 그 아래 set()을 통해서 json 값을 넣어준다.
- set() : 지정된 위치에 저장
- push() : 고유 key 값(고유한 저장위치)을 만들어줌
● 글 저장하기
글 저장하는 함수는 아래와 같다. firebase 모듈 객체를 통해 ref() 함수를 호출해준다. 인자 값으로 생성할 레퍼런스(테이블,폴더) 이름을 넣어준다. 그리고 push()를 통해 새로운 고유 key 값을 생성해주고 그 아래에 set()을 통해 값을 저장해준다. set() 안에는 json object가 들어간다. 저장 성공을 했으면 textarea 부분을 깨끗이 지워준다.
● 실행 및 대쉬보드 확인
firebase 서버를 실행하고 로그인 한 후에 직접 글을 써보자. 또 하나의 행복이 쌓였습니다. 라는 alert() 창이 뜨고 저장이 되면 쓴글이 초기화 된다. 여기서 유효성 검사라든지, 들어가면 안될 단어처리 등은 스스로 처리해주거나 넘어간다. firebase에 집중해야지.. 그리고 firebase 대쉬 보드로 가서 값이 잘 들어갔는지 확인해보자
▲로그인 한후에 글을쓰고 쓰기 버튼을 클릭
▲alert 창 확인
▲firebase 대쉬보드가서 확인. 성공적으로 값이 들어가 있는 것을 볼 수 있다.
● 마무리
이번포스팅에서 firebase 모듈을 이용해서 레퍼런스 만들기(ref함수) , 고유pk 값위치 만들기(push), json object값을 해당위치에 저장하기(set)를 알아보았다. 다음 포스팅에서는 유저들이 쓴 감사일기 글이 메인화면에서 가져와서 뿌리는 기능을 살펴보자.
● 소스코드
보다 자세한 설명은 유튜브에 영상으로 정리해 놓았으니 공부하시다가 참고하셔도 좋을것 같습니다
'Firebase > Firebase&웹' 카테고리의 다른 글
[Firebase&Web연동 10] 나의 프로필 페이지 만들기 (0) | 2018.02.27 |
---|---|
[Firebase&Web연동 9] 로그인 한 사용자에게만 글 리스트 뿌려주기 (4) | 2018.02.26 |
[Firebase&Web연동 7] firebase 로그아웃 함수를 이용해서 로그아웃 기능 구현 (1) | 2018.02.24 |
[Firebase&Web연동 6] session을 이용해서 navigation bar 변경해주기 (3) | 2018.02.24 |
[Firebase&Web연동 5] 로그인 기능 구현 (2) | 2018.02.23 |
댓글