Daily Front_Minhhk

[firebase] 실시간 데이터베이스 쓰기 본문

Project/ChatProject

[firebase] 실시간 데이터베이스 쓰기

Minhhk 2023. 5. 8. 00:23

빌드 / 실시간 데이터베이스 에서 새로만들기 클릭!

위치는 싱가포르 asia 서버로 두고, 생성한다.

 

예제는 이렇다!!
getDatabase() 가져오는 것과, set(ref()) 이부분만 잘 적용 하면 된다.

 

import { getDatabase, ref, set } from "firebase/database";

function writeUserData(userId, name, email, imageUrl) {
  const db = getDatabase();
  set(ref(db, 'users/' + userId), {
    username: name,
    email: email,
    profile_picture : imageUrl
  });
}

 

 

by 공식문서 참조

 

웹에서 데이터 읽기 및 쓰기  |  Firebase 실시간 데이터베이스

5월 10일, Google I/O에서 Firebase가 돌아옵니다. 지금 등록하기 의견 보내기 웹에서 데이터 읽기 및 쓰기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. (선택사

firebase.google.com

 

 

 

register => 회원가입시 user 정보

      // 파이어베이스 가입
      setLoading(true);
      const register = await createUserWithEmailAndPassword(
        appAuth,
        data.email,
        data.password
      );

 

 

submit 함수에서 아래처럼 데이터베이스를 가져오고 set(ref()) 설정을 해준다.

  // 데이터베이스 가져오기
  const database = getDatabase();

 

 

데이터 베이스 등록 코드
      set(ref(database,`users/${register.user.uid}`), {
        username: register.user.displayName,
        email: register.user.email,
        profile_picture: register.user.photoURL,
      });

 

>>

 

 

users === 테이블을 지칭하고, 

${register.user.uid} === 을 나타내고, 나머지 하부 객체 데이터는 을 나타낸다.

 

 

회원가입 시, 정보가 들어온 것을 확인 할 수있다.

 

❗️Error
firebase warning: database lives in a different region. please change your database url

자꾸만 떴는데,, 생성할 때 firebase.js 에서 databaseURL 키:값을 안넣어 줬었다..

다시 .env 파일과 firebaseConfig 수정 해주니까 잘 작동이 되었다.

const firebaseConfig = {
  apiKey: process.env.REACT_APP_API_KEY,
  authDomain: process.env.REACT_APP_AUTH_DOMAIN,
  projectId: process.env.REACT_APP_PROJECT_ID,
  storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
  messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,
  appId: process.env.REACT_APP_APP_ID,
  databaseURL: process.env.REACT_APP_DATABASE_URL,
};