[React] 최신 Firebase Real-Time DB 사용하기

2021. 11. 28. 01:04·React/Firebase
목차
  1. 경로 선언
  2. 데이터 필터링
  3. 데이터 삽입 및 가져오기
  4. 데이터 변경 구독하기

Firestore와 Real-Time DB의 차이점은 아래 글에 간략하게 정리되어있다.

 

[React] 최신 Firebase Firestore 사용하기

Firebase의 기본 설정이 필요하다면 아래 글을 참고하길 바란다. [React] 최신 Firebase에서 로그인 구현하기 React의 Firebase 라이브러리가 업데이트 되면서 함수를 호출하는 방식이 바뀌었다. 거의 필수

muhly.tistory.com

 

Real-Time DB는 doc, collection 두 가지가 존재하는 Firestore와는 다르게 ref라는 하나의 함수만 사용한다.

 

 

 

경로 선언

import {
  push,
  ref,
  limitToLast,
  onValue,
  orderByChild,
  query,
  remove,
} from "@firebase/database";
//import를 잊지말자

import { realtimeDbService } from "../firebase_config";


//경로는 아래와 같이 간단하게 선언할 수 있다.
//앞서 config 파일에서 export한 service 클래스를 가져와야한다.
  const locate = ref(realtimeDbService, `chat/${chatRoomId}/`);

 

데이터 필터링

//query구문으로 데이터를 필터링할 수 있다.
//아래의 구문은 chat/chatRoomId 아래에 있는 object들이 가진
//createdAt이라는 Field의 값으로 정렬 후 최근 50개만을 가르킨다는 의미이다.

const chatRef = query(
    ref(realtimeDbService, `chat/${cryptoId}/`),
    orderByChild("createdAt"),
    limitToLast(50)
  );

 

데이터 삽입 및 가져오기

//locate는 앞서 선언한 ref
push(locate, {
    uid: authService.currentUser.uid,
    name: authService.currentUser.displayName,
    message,
    createdAt: Timestamp.fromDate(new Date()),
  });
  
  
//데이터 가져오기
const response = await get(locate);
print(response.val());
//데이터는 val()로 불러온다.

위의 ref 혹은 query + ref로 경로와 필터링을 선언해주었다면 아래의 함수로 해당 경로내에 데이터를 삽입 할 수 있으며,

get 함수로 간단하게 데이터를 가져올 수 있다. 두 함수 모두 비동기이다. 정말 간단하게 CRUD를 구현 할 수 있다.

 

 

데이터 변경 구독하기

Firebase의 가장 큰 장점은, 소켓 기능을 정말 쉽게 사용할 수 있다는 것이다. 예를 들어 채팅같이 서버의 데이터가 변경된 경우 즉각적으로 클라이언트가 반응할 수 있다.

//앞서 설명한 데이터를 필터링하는 query이다.
const chatRef = query(
    ref(realtimeDbService, `chat/${cryptoId}/`),
    orderByChild("createdAt"),
    limitToLast(50)
  );


//query를 onValue의 첫 번째 매개변수로 주고,
//두 번째에는 아래와 같이 함수를 적어준다.
//query에 해당하는 값들이 서버에서 변경되면 아래 함수가 호출되어
//snapshot의 데이터가 서버로부터 get되고, 내부의 명령이 동작하게 된다.

onValue(chatRef, (response) => {
    print(response.val());
  });
저작자표시 비영리 변경금지 (새창열림)

'React > Firebase' 카테고리의 다른 글

[React] 최신 Firebase Firestore 사용하기  (0) 2021.11.28
[React] 최신 Firebase에서 로그인 구현하기  (0) 2021.11.28
  1. 경로 선언
  2. 데이터 필터링
  3. 데이터 삽입 및 가져오기
  4. 데이터 변경 구독하기
'React/Firebase' 카테고리의 다른 글
  • [React] 최신 Firebase Firestore 사용하기
  • [React] 최신 Firebase에서 로그인 구현하기
코딩으로세계정복
코딩으로세계정복
Connecting the dots
  • 코딩으로세계정복
    코딩으로 세계정복
    코딩으로세계정복
  • 전체
    오늘
    어제
    • 전체 (134)
      • Who am I (10)
        • Portfolio (4)
        • Reminiscence (5)
        • Oversea (1)
        • SiliconValley (0)
      • React (36)
        • React Basic (15)
        • React Tech (5)
        • JavaScript (7)
        • TypeScript (3)
        • CSS&HTML (3)
        • Firebase (3)
      • NodeJS (1)
        • NodeJS Basic (1)
      • Flutter (55)
        • Flutter Widget Design (5)
        • Flutter Widget Basic (8)
        • Flutter Tech (18)
        • Flutter Issue (7)
        • Flutter Web (6)
        • About Flutter (2)
        • Firebase (1)
        • Dev Env (1)
        • Dart (7)
      • Programming (31)
        • Web (1)
        • General (0)
        • Algorithm (25)
        • Python (1)
        • VS Code (2)
      • Django (0)
  • 블로그 메뉴

    • Who I AM
    • React
    • NodeJS
    • Flutter
    • Programming
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    플러터
    DART
    JavaScript
    탐욕법
    플러터 웹
    Lingory
    Flutter
    링고리
    DP
    github
    react
    Python
    HTML
    useState
    JSON
    flutter web
    Redux
    리액트
    Firebase
    자바스크립트
    프로그래머스
    useRef
    CSS
    map
    알고리즘
    파이썬
    TypeScript
    useTranslation
    포트폴리오
    웹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩으로세계정복
[React] 최신 Firebase Real-Time DB 사용하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.