inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

핸즈온 리액트 네이티브

8.17 :: 서버 이미지 캐싱하기

[TypeError: unsubscribe is not a function (it is undefined)] 오류 발생으로 질문드립니다.

해결된 질문

108

dvdve

작성한 질문수 21

0

프로젝트를 수행하는데 당장의 문제는 없는거 같아서 진행하고있었는데 계속해서 로그에 오류가 발생해서 질문드려봅니다.

 

로그인/로그아웃시 오류가 발생하고 있습니다

터미널에서는

(NOBRIDGE) ERROR [TypeError: unsubscribe is not a function (it is undefined)]

이런 오류로 뜨고 기기에서는

이런식의 오류코드가 나옵니다.

 

오류.jpg.webp

 

 

 

 

react-native

답변 2

1

김범준

https://github.com/dvrakry/rn-photo/blob/master/src/navigations/index.js#L37

이 라인을 삭제하고,

바로 아래

return () => unsubscribe(); 코드를 추가하세요.

 

인프런 AI 인턴의 2번 "useEffect와 함께 사용"에 나온것처럼 코드를 수정하시면 됩니다.

 

감사합니다.

0

dvdve

감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. dvdve님.

unsubscribe is not a function 오류는 종종 onAuthStateChanged와 같은 Firebase 인증 관련 비동기 작업에서 반환된 구독(Subscription)을 적절히 처리하지 않을 때 발생합니다. 이는 일반적으로 Firebase 인증 이벤트를 등록하거나 해제할 때 발생하는 문제입니다.

다음과 같은 방법으로 문제를 해결할 수 있습니다:

  1. onAuthStateChanged의 사용 확인: onAuthStateChanged 함수는 Firebase에서 제공하는 인증 상태 변경을 감지하는 리스너입니다. 이 함수는 구독을 해제하기 위해 반환된 값을 unsubscribe로 저장해야 하며, 컴포넌트가 언마운트될 때 이 구독을 해제해야 합니다.

  2. useEffect와 함께 사용: 주로 useEffect 후크를 사용하여 onAuthStateChanged를 설정 및 해제합니다.

   import { getAuth, onAuthStateChanged } from "firebase/auth";

   useEffect(() => {
     const auth = getAuth();
     const unsubscribe = onAuthStateChanged(auth, (user) => {
       if (user) {
         console.log("User is signed in");
       } else {
         console.log("No user is signed in");
       }
     });

     // Cleanup subscription on unmount
     return () => unsubscribe();
   }, []);
  1. 문제있는 코드 검토: unsubscribe가 정의되어 있어야 할 부분에서 해당 코드가 올바르게 설정되었는지 확인하세요. 구독 해제 부분이 누락되어 발생할 수 있습니다.

이러한 사항들을 점검해 보시고, 위의 조치로 문제를 해결할 수 있을 것입니다. 도움이 될 수 있는 링크는 아래와 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

expo 가 업데이트 되면서 문제가 발생한거같습니다.

0

342

2

navigation.replace() 작동하지 않습니다.

0

147

2

UpdateProfileScreen 에서 사진 버튼 클릭시 오류발생.

0

132

2

닉네임 수정 후 확인 버튼을 누를시 한글자만 출력됩니다.

0

177

2

모달창에서 버튼이 출력되지 않습니다.

0

104

2

로그인 에러 출력시 default값만 나옵니다.

0

144

2

안드로이드 기기에서 SignUp 화면 관련 질문드립니다.

0

85

2

간단한 질문 하나만 드리겠습니다!

0

76

2

text.trim() 부분에서 오류가 발생합니다.

0

124

2

profile 화면에서 내가 쓴 글이 나타나지 않습니다.

0

140

2

글 저장시 파일 저장위치 관련 질문드립니다!

0

111

2

구글 지도 API 관련 오류로 질문드립니다!

0

142

1

HeaderRight 버튼이 작동하지 않습니다.

0

88

2

사진이 나오지 않는 문제로 질문드립니다.

0

113

2

defaultProps 관련 문의 드립니당

0

244

2

이미지 목록을 받아오는 부분에서 IOS 에서 문제가 발생합니다.

0

129

2

안드로이드 기기에서 헤더 부분이 작동이 안됩니다.

0

87

2

7.15 :: 상태 변수와 컴포넌트 언마운트 관련 질문드립니다!

0

98

2

SIgnIn SignUp 화면이 안나옵니다.

0

126

2

마지막 useEffect 부분 질문드립니다.

0

100

2

ImagPickerScreen을 만드는 과정에서 문제가 발생하여 글을 남깁니다.

0

208

2

eslint.config.mjs 파일에 plugin 설정방법

0

747

1

ESLint.json 파일이 생성되지 않습니다.

0

236

2

[환경변수 설정]

0

272

1