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

Schidshow MilkyWay님의 프로필 이미지

작성한 질문수

처음 배우는 리액트 네이티브

채팅채널 생성 구현 시 오류입니다.

21.05.15 23:27 작성

·

234

0

안녕하세요. 바쁘신데 또 질문드려 죄송합니다.

채팅채널 생성 구현중인데 firebase.js 파일 저장만 하면 다음과 같은 오류가 나옵니다.

선생님 코드 다운받아서 한 줄 한 줄 비교해가며 봐도 뭐가 문젠지 못찾겠습니다.

오류 무시하고 채널 생성 버튼을 누르면 다음의 메시지가 출력됩니다.

두 개의 문제가 연결된건지는 잘 모르겠습니다.

문제의 파일이 담긴 주소는 이곳입니다.

https://github.com/Schidshow/kbjChatApp

매번 신경써주셔서 너무 감사합니다.

답변 3

0

Schidshow MilkyWay님의 프로필 이미지

2021. 05. 16. 10:05

다시 다 끄고 차분히 해봐도 여전히 같은 현상입니다. 

혹시 선생님 firebase에 물려서 테스트 하신건가요? 혹시 어떤거 더 살펴봐야 할 것이 있을까요?

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

2021. 05. 16. 10:06

네, 파이어베이스에 연결하고 테스트 진행했습니다. 

다시 한 번 테스트 진행해 보겠습니다. 

---- 수정 

다시 테스트 해도 잘 동작하고 있습니다. 

Schidshow MilkyWay님의 프로필 이미지

2021. 05. 16. 10:12

네 감사합니다. 그럼 코드보다는 파이어베이스쪽 문제를 살펴보겠습니다.

Schidshow MilkyWay님의 프로필 이미지

2021. 05. 16. 10:27

구글링 중 stack overflow에 다음과 같은 해결책이 있길래 해봤더니 일단 등록까지 잘 됩니다.

const app = firebase.initializeApp(config);

코드 뒤에 

firebase.firestore().settings({experimentalForceLongPolling: true});

를 넣어보라는 이야기였습니다.

글 작성자도 왜 되는지는 자세히는 모르겠다고 한 부분인데 혹시 어떤부분인지 아실까요?

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

2021. 05. 16. 10:32

해결이 되었다니 다행이네요, 

그런데, 알려주신 옵션을 확인해보니 향후 제거될 수도 있다고 나와있네요

"may be removed in a future release"

이 옵션은 저도 처음 보는 옵션이라 명확하게 답변드리기 어렵습니다. 

  

동일한 현상이 재현되면 다른 해결 방법이 있는지 확인해 보도록 하겠습니다. 

현재는 동일한 현상 재현이 되지 않아, 명확한 답변이 어려운점 이해해 주시면 감사하겠습니다. 

Schidshow MilkyWay님의 프로필 이미지

2021. 05. 16. 10:33

아고 너무 감사드립니다. 감사합니다!!

0

Schidshow MilkyWay님의 프로필 이미지

2021. 05. 16. 09:36

감사합니다.

spinner의 경우 영상을 돌려보며 확인해보니 본문에서 코드 수정 설명 없이 바뀌어 있네요 ^^

일단 수정 후 해당 에러 메시지는 사라졌습니다만 채널 생성 시 스피너만 계속 돌며 실제 채널 생성 및 firestore에 등록이 되지 않습니다.

계속 기다리니 다음과 같은 워닝 메시지가 출력됩니다.

파이어 스토어에 규칙도 권한 있는자 허용으로 잘 설정되어 있습니다.

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

2021. 05. 16. 09:42

안녕하세요, 

  

제가 편집을 하는 도중에 실수로 코드 수정하는 부분까지 잘라냈나보네요

혼란을 드려 죄송합니다. 

  

채널 생성은 깃헙 코드를 기반으로 테스트 해보니 정상적으로 생성되고 있습니다. 

다시 한 번 확인해 보시기 바랍니다. 

  

감사합니다. 

0

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

2021. 05. 16. 02:33

안녕하세요, 

  

먼저, spinner.start 에러가 나는 부분은
src/screens/ChannelCreation.js 에서 spinner를 가져올때,
useContext안에 UserContext를 사용해서 발생한 문제입니다. 
spinner는 ProgressContext에 있으니 useContext(ProgressContext)로 변경하면 문제가 해결됩니다. 

  

파이에베이스 관련되어 나타나는
Firebase App named '[DEFAULT]' already exists 에러는

const app = !firebase.apps.length ? firebase.initializeApp(config) : firebase.app();

처럼 이미 있는지 확인하는 코드로 처리하면 해결할 수 있습니다. 
해당 에러는 단순 무시 후 진행보다는 새로고침 후 진행하시기 바랍니다. 
  

감사합니다.