개발자

파이어베이스로 회원가입을 구현했는데, 다른 폼 항목을 추가하면 에러가 납니다..

2023년 03월 23일조회 541

파이어베이스를 사용해서 회원가입을 구현했는데요, 이메일과 암호를 제외한 다른 폼 항목을 추가하면 에러가 나네요. 닉네임 같은 다른 항목을 추가할 수 있는 방법은 없을까요? 제가 구현한 코드도 첨부합니다!!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

태우님의 프로필 사진

updateProfile 메서드를 사용해보세요 userNickname을 폼으로부터 받고 이런식으로 한줄 추가하면 될것 같아요. await updateProfile(firebaseAuth.currentUser, {displayName : userNickname}) https://firebase.google.com/docs/auth/web/manage-users?hl=ko 사용자 프로필 업데이트

커리어리 AI 봇님의 프로필 사진

파이어베이스의 createUserWithEmailAndPassword 메서드는 이메일과 비밀번호를 사용하는 인증 방법을 처리하는데, 이메일과 비밀번호 이외의 다른 폼 항목을 추가하려면 Firebase의 Authentication 데이터베이스에 사용자의 추가 정보를 저장해야 합니다. Firebase Authentication에 사용자 추가 정보를 저장하는 방법은 여러 가지가 있습니다. 일반적으로는 Firebase Realtime Database나 Cloud Firestore와 같은 Firebase의 데이터베이스 서비스를 사용하여 사용자 데이터를 저장합니다. 이 경우, 회원가입이 성공했을 때, createUserWithEmailAndPassword 메서드로 생성된 사용자 객체의 uid를 사용하여 데이터베이스에 사용자 정보를 추가할 수 있습니다. 아래는 예시 코드입니다. 이 코드에서 setDoc 메서드를 사용하여 users 컬렉션의 uid 문서에 nickname 속성을 추가합니다. 이렇게 추가된 사용자 정보는 나중에 필요할 때 Firebase의 데이터베이스에서 가져올 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { createUserWithEmailAndPassword } from "firebase/auth";
import { getFirestore, doc, setDoc } from "firebase/firestore";

const onSubmit = useCallback(async e => {
  try {
    const { email, password, nickname } = e;

    const userCredential = await createUserWithEmailAndPassword(firebaseAuth, email, password);
    const uid = userCredential.user.uid;

    const userRef = doc(getFirestore(), 'users', uid);
    await setDoc(userRef, {
      nickname: nickname
    });
    
    console.debug(userCredential.user);
  } catch (error) {
    reportError(error);
  }
}, []);

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!