인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Veronica님의 프로필 이미지
Veronica

작성한 질문수

핸즈온 리액트 네이티브

8.16 :: 프로필 화면 만들기

FirebaseError: auth/already-initialized

작성

·

238

0

안녕하세요,

 

8강 끝부분을 따라가고 있는 중입니다.

 

프로젝트에서 npm start 해놓고 expo go 어플로 실시간으로 확인하면서 작업을 진행 중인데요, 새로고침 할 때(r눌러서)는 괜찮은데, VS Code에서 저장을 해서 자동으로 리랜더링 될때마다 아래와 같은 에러 메세지가 콘솔 창에 나타납니다.

[FirebaseError: Firebase: Error (auth/already-initialized).]

 

특별히 뭐가 안되거나 하는건 아닌데... r 눌러서 아예 앱을 새로고침하면 뜨지않습니다. 어디선가 중복으로 초기화하고있다는 뜻일까요?

 

firebase.js 파일 코드 첨부합니다! 추가로 보여드려야 하는 다른 코드가 있다면 말씀 부탁드립니다. screen 부분은 제가 다르게 가져가고 있는데 이 외에 기능부분에 대한 것들은 강의와 동일하게 진행 중입니다.

 

firebase.js

import { initializeApp } from 'firebase/app';
import { firebaseConfig } from '../../env';
import { getReactNativePersistence, initializeAuth } from 'firebase/auth';
import AsyncStorage from '@react-native-async-storage/async-storage';

export const initFirebase = () => {
  // Initialize Firebase
  try {
    const app = initializeApp(firebaseConfig);
    initializeAuth(app, {
      persistence: getReactNativePersistence(AsyncStorage),
    });
    return app;
  } catch (e) {
    // eslint-disable-next-line no-console
    console.error(e);
  }
};

답변 2

0

Veronica님의 프로필 이미지
Veronica
질문자

감사합니다 잘 실행되네요!!

0

김범준님의 프로필 이미지
김범준
지식공유자

안녕하세요,

 

코드를 다음과 같이 수정해보세요.

 

import { initializeApp, getApps, getApp } from 'firebase/app';
import { firebaseConfig } from '../../env';
import {
  getReactNativePersistence,
  initializeAuth,
} from 'firebase/auth/react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';

export const initFirebase = () => {
  let app = null;
  if (getApps().length === 0) {
    try {
      app = initializeApp(firebaseConfig);
      initializeAuth(app, {
        persistence: getReactNativePersistence(AsyncStorage),
      });
    } catch (e) {
      // console.log(e);
    }
  } else {
    app = getApp();
  }
  return app;
};

 

Veronica님의 프로필 이미지
Veronica

작성한 질문수

질문하기