
"Firebase: Firebase App named '[DEFAULT]' already exists with different options or config (app/duplicate-app)." 오류가 발생했다.
useEffect 내에서 이 코드를 이용해 firebase를 초기화하고 있었다.
const app = initializeApp(firebaseConfig);
검색해 보니 다음과 같이 우회할 수 있었다.
[Firebase] Firebase App named '[DEFAULT]' already exists with different options or config (app/duplicate-app).
이미 초기화 되어있는 경우에 초기화를 중복으로 하여 발생하는 것으로 파악하였다.이러한 경우 아래와 같이 다시 초기화 하지 않고 기존 app을 사용하도록 코드를 수정해 주었다.firebase.tsx
velog.io
위 글을 참고해 다음과 같이 코드를 수정했다.
const app = !getApps().length ? initializeApp(firebaseConfig) : getApp();
그러나 해결되지 않았다...
혹시나 해서 파일을 분리해 보았다.
import { getApp, getApps, initializeApp } from 'firebase/app';
import { firebaseConfig } from './firebaseConfig';
const app = !getApps().length ? initializeApp(firebaseConfig) : getApp();
export default app;
/* 생략 ... */
import app from './firebaseApp';
const useGetAuthState = () => {
/* 중략 ... */
useEffect(() => {
const auth = getAuth(app);
/* 중략 ... */
}, [navigator]);
return uid;
};
export default useGetAuthState;
코드에 큰 차이가 없기 때문에 사실상 오류 해결에 도움을 주지는 않았다.
다만, 이렇게 바꾸고 나서 navigate hook으로 하던 페이지 이동을 window.location.href로 바꿔 버렸다. 그래서 페이지를 강제 이동시킴으로써 문제를 우회할 수 있었는데, 이 부분은 추후 다시 확인할 예정이다.
'개발 의문 해결' 카테고리의 다른 글
Firebase로 배포한 React 프로젝트에서 OG 정보 설정하기 (1) | 2024.03.13 |
---|---|
React에서 오픈그래프 정보 설정하기 (0) | 2024.03.08 |
Firebase Authentication으로 로그인 페이지 구현하기 (1) | 2024.02.28 |
Next.js 환경에서 Tailwind 사용하기 (0) | 2024.02.27 |
Firebase Realtime DB를 Redux에 저장하기 (0) | 2024.02.23 |