본문 바로가기

프로그래밍/firebase

[firebase] firestore DB 데이터 읽기, 쓰기

728x90
반응형

저번 글 까지는 firebase 생성 및 실행을 해 보았다.

 

이제 firebase에 기능들을 하나하나 씩 알아보자.

우선 개발에 빠질 수 없는 DB에 대해서부터 시작하자.

 

firebase에서는 firestore라는 DB를 제공해 주는데 흔히 쓰는 RDBMS가 아닌 No-SQL을 지원해 준다.

No-SQL은 RDBMS보다는 제한이 적고 뭔가 좀 더 자유로운 느낌이다.

 

No-SQL에는 대표적으로 MongoDB가 있는데 MongoDB를 사용했던 분들이라면 전혀 어색하지 않게 사용할 수 있을 것 같다.

 

그럼 우선 데이터를 가져오는 것 부터 해 보자.

 

 

firebase console 에서 Firestore Database를 선택하면 위와 같은 화면이 나온다.

저기서 컬렉션 시작을 눌러 원하는 컬렉션을 만들어 주면 되는데 일반적인 RDBMS에서 테이블을 생성하는 것이라고 생각하면 된다.

 

 

원하는 컬렉션 이름을 지어 준다.

 

 

나는 product 라는 이름으로 만들었고 그다음 문서 ID를 등록하는데 product라는 테이블에 데이터를 집어넣는 것과 같다.

여기서 문서 ID는 고유 식별번호라 생각하면 되는데 PK와 같은 역할이다.

우선은 알아보기 쉽게 상품1이라고 저장을 했다.

 

 

저장을 하고 나면 product 컬렉션에 상품 1이라는 문서가 추가된 것을 볼 수 있다.

 

 

필드 추가를 누르면 컬럼 값을 지정할 수 있다.

RDBMS는 컬럼을 먼저 지정하고 그에 맞게 데이터를 넣어야 하는데 No-SQL은 컬럼을 자유자재로 지정할 수 있는 점이 장점이라면 장점 같은데 어떻게 보면 단점이 될 수도 있을 것 같다.

 

원하는 컬럼을 만들면 된다.

 

그다음 데이터를 읽어오려고 하면 permission 에러가 날 것이다.

 

 

규칙 설정을 안해주어서 그런 건데 규칙 탭으로 들어가 위 사진처럼 read, write에 대한 권한을 true로 바꿔주면 모든 사용자가 접근이 가능하다는 뜻이다.

 

여기서 read는 데이터를 읽어 오는것이고 write는 데이터의 쓰기, 수정, 삭제의 대한 권한이다.

write에는 권한이 통합적으로 들어 있어 추후에 세부적으로 나눌 수도 있는데 update, create, delete로 세부 권한을 설정할 수도 있다.

 

 

그 뒤 프로젝트로 돌아가 스크립트를 위와 같이 짜준다.

db를 생성해 주고 collection 에는 가져올 데이터의 콜렉션(테이블) 이름을 적어주면 된다.

그다음 get()을 하게 되면 모든 데이터를 다 가져오게 된다. 가져온 데이터를 forEach문으로 루프를 돌아 콘솔에 찍어서 확인해 보는데 data()를 붙여줘야 원하는 형태로 데이터를 가져올 수 있다.

 

 

개발자 도구를 이용해 데이터가 잘 읽어와 졌는지 확인해 본다.

기본적으로 JSON형태로 데이터를 가져오게 된다.

 

정말 간단하게 코드 단 4줄만으로 데이터를 가져왔다.

 

그럼 이제 데이터 저장을 해야 하는데 데이터 저장은 엄청 간단하다.

 

 

우선 위와 같이 데이터 저장방법은 2가지가 있는데 collection에는 어떤 테이블에 데이터를 넣어 줄지를 명시해 주면 된다. 그 뒤에 doc()와 add()를 이용한 방법이 있는데 doc()를 이용하게 되면 문서 ID를 우리가 원하는 이름으로 지정을 해 줄 수가 있다. 그 뒤에 set()을 이용해 원하는 데이터를 자바스크립트 오브젝트 형식으로 넣어 주면 된다.

 

add()로 넣는 방법은 문서 ID를 자동으로 넣어 주는데 우리가 문서 ID를 일일이 지정해 줄 수가 없기 때문에 add()로 데이터를 넣는 것을 추천한다.

 

 

비교해보면 doc()를 이용해 상품 3이라는 데이터와 add()를 이용해 문서 ID를 자동으로 넣어준 데이터가 정상적으로 들어간 걸 확인해 볼 수 있다.

 

다음 글에서는 데이터의 수정과 삭제에 대해 알아보겠다.

728x90
반응형