• 새로운 Firebase 프로젝트 DB와 안드로이드 스튜디오 연결하기

 

오늘은 회의가 있는 날이었다.

일기장, 게시판 주요 기능 구현은 거의 다 마친 상태에서 앞으로 구현해야할 기능들에 대해 얘기를 나눴고

1:1상담 구현을 위해 필요한 Dialogflow를 연동하기 위해

기존에 사용하던 Firebase 프로젝트가 아닌 Dialogflow와 연동된

새로운 Firebase 프로젝트를 이용하도록 google-service.json 파일을 변경했다.

 

왜인지 모르겠지만 google-service.json 파일을 변경했음에도 불구하고 계속 기존 DB에 연결이 되었다.

이것의 원인을 찾지 못한 채로 회의를 마쳤고 문제 해결 방법을 찾아보았다.

 

내가 찾은 자료는 여러 개의 Firebase DB를 이용하는 방법이었는데

 

https://stackoverflow.com/questions/53189746/what-will-firebase-getinstance-get-if-there-are-multiple-databases

 

What will firebase.getInstance() get if there are multiple databases

I was using a firebase database in my Android app. Now I need to use another database but I want to know for the old versions of my app what will "firebaseDatabase.getInstance" return? Which database

stackoverflow.com

 

 

FirebaseOptions options = new FirebaseOptions.Builder()
        .setApplicationId("앱ID")
        .setApiKey("API key")
        .setDatabaseUrl("DB Url")
        .build();

FirebaseApp.initializeApp(this, options, "이름");

FirebaseApp secondary = FirebaseApp.getInstance("이름");
FirebaseDatabase secondaryDatabase = FirebaseDatabase.getInstance(secondary);​

 

FirebaseOptions와 FirebaseApp.initializeApp을 이용해서 이름을 지정해서 이용하는 것이었다.

이 방법대로 하면 연결은 되긴 하나, FirebaseApp의 디폴트 DB는 기존 DB와 연결이 돼서

이름 부분을 생략하고 FirebaseApp.initializeApp(this, options); 라고 적었더니

java.lang.IllegalStateException: FirebaseApp name [DEFAULT] already exists! 이런 오류가 발생했다.

 

디폴트 DB를 원하는 DB로 설정하지 않으면

Firebase를 사용하는 모든 java 파일에서 해당 부분을 수정해야했기 때문에

분명 다른 방법이 있을 것이라 생각하고 더 찾아보았다.

 

FirebaseApp.getInstance().delete();

 

이렇게 디폴트 DB를 삭제하면 더이상 오류는 발생하지 않는 것을 확인했지만

google-service.json 파일을 지웠는데도 기존 DB와 연결이 되는 것이 여전히 이해가 되지 않았다.

 

 

그리고 새벽에 팀원분이 우리와 똑같은 문제를 겪고 해결한 사례를 작성한 포스팅 링크를 보내주셨다.

 

https://bamgasi.tistory.com/m/2

 

firebase 프로젝트 변경방법

firebase 프로젝트 변경방법 앱 개발 초기 테스트로 firebase 프로젝트를 생성 후 라이브 시에 새로운 프로젝트로 변경해야 할 일이 생겼다. 이에 대한 변경방법이다. 일반적인 웹프로젝트는 config

bamgasi.tistory.com

 

포스팅을 읽어보면 알겠지만... 그렇다.

안드로이드 스튜디오 Build 메뉴에서 Rebuild Project를 하면 끝나는 것......!!!

 

다행스럽게도(?) 위의 방법을 따라하니 새로운 Firebase DB와의 연결이 제대로 되었다.

json 파일 변경하면 Rebuild 해야한다는건 전혀 몰랐지... 그래서 한참 헤맸는데

그나마 하루 이상 넘기지 않고 문제가 해결돼서 다행이라고 생각하자...

 

내일부터 다시 앱 기능 구현에 집중해야겠다!!

+ Recent posts