firebase - database

Category
Side Project twitter
Status
Published
Tags
Firebase
Description
Published
Slug
현재 서비스에 firebase 콘솔을 추가해 줄 것임
notion image
 
 
firestore은 NoSQL데이터베이스임
 
create database를 누르고
notion image
 
 
 
notion image
사용할 위치를 지정하고
 
start in testmode을 선택할 것임
이 모드는 30일 후에 비활성화 됨
notion image
 
만들기를 누르면, 데이터베이스가 만들어짐
notion image
 
 
이제 스토리지를 생성해줄텐데
스토리지 서버도 데이터베이스와 같은 위치에 만들어줄 것임
왼쪽의 빌드 - 스토리지를 눌러서 들어가면
notion image
 
 
스토리지를 만들 수 있는데,
notion image
 
나중에 보안규칙을 바꿔줄 것이므로 똑같이, test 모드를 사용할 것임
notion image
 
생성하면, storage가 만들어짐
notion image

Firebase Database
주로 구조화된 데이터를 실시간으로 저장하고 동기화하는 데 사용. 이를 통해 애플리케이션의 데이터를 쉽게 관리하고, 사용자 간의 실시간 상호작용을 구현할 수 있다.
 
Firebase Storage
Firebase Storage는 대용량 파일(예: 이미지, 비디오, 오디오 등)을 저장하고 전송하기 위한 서비스. 사용자가 업로드한 파일을 클라우드에 안전하게 저장하고, 필요할 때 언제든지 접근할 수 있도록 한다. Storage는 Google Cloud Storage를 기반으로 하며, 강력한 보안 기능과 함께 파일 업로드 및 다운로드를 위한 간단한 API를 제공한다. 또한, 네트워크 상태가 불안정할 때도 파일 전송을 이어갈 수 있는 내구성 있는 업로드 기능을 지원한다.
 
차이점
목적: Database는 실시간으로 구조화된 데이터를 저장하고 동기화하는 데 초점을 맞추고 있으며, Storage는 대용량 파일 저장 및 전송에 최적화되어 있다.
데이터 형식: Database는 주로 텍스트 기반의 구조화된 데이터를 다루며, Storage는 파일 형태의 비구조화된 데이터를 다룬다.
활용 사례: Database는 애플리케이션의 동적인 데이터 관리에 적합하고, Storage는 사용자가 생성한 콘텐츠나 대용량 미디어 파일을 저장하는 데 적합하다.
 

코드에서는
firebase.ts 파일로 들어가서
notion image
 
auth를 얻을 것 처럼
데이터베이스와 스토리지에 대한 엑세스 권한을 얻을 것임
export const storage = getStorage(app); //firebase storage사용 export const db = getFirestore(app); //firebase database사용
notion image
 
데이터베이스는 collection과 document라는 것으로 동작함
collection은 폴더와 같은 개념
notion image
 
컬렉션을 추가하고 이름을 tweets이라 한다면, 아래와 같이 뜨는데,
컬렉션의 첫번째 document를 만들어야 함
document에는 기본적으로 임의의 ID가 배정되지만, ID를 변경할 수 도 있음
notion image
 
필드는 다음과 같은 식으로 지정해 줄 수 있음
notion image
 
위와 같이 수동으로 데이터를 직접 넣을 수 있고
나중엔 리액트 앱을 통에 넣을 것임
notion image
 
해당 tweet document안에도 또다른 collection이 존재할 수 있음
notion image
예를 들어, replies(댓글) collection이 있을 수 있음
notion image
 
이렇게 되면, reply collection이 document 내에 있고,
그건 tweets 컬렉션 내에 있고
그 tweets 컬렉션은 DB안에 위치하는 구조가 됨
notion image
 
document를 삭제할 수도 있음
notion image
 
문서삭제 버튼을 누르면
빈 tweet 컬렉션 껍데기만 남게 됨
notion image