2024-12-05
파이어베이스를 통한 회원가입과 로그인을 위해서는
먼저 유니티와 파이어베이스가 연동되어 있어야 한다.
Firebase 공식 홈페이지 → Go to Console
→ 프로젝트 만들기
→ Unity 용 Firebase SDK 다운로드
→ google-services.json 다운로드
다운로드한 google-services.json 을 Assets
폴더로 이동.
다운로드한 Firebase SDK 파일을 Unity 프로젝트에 추가.
.unitypackage
파일을 Assets → Import Package → Custom Package 를 통해 임포트
프로젝트의 기능에 따라 필요한 패키지를 추가하자.
이름 | 패키지 | 기능 |
---|---|---|
App Check | FirebaseAppCheck.unitypackage | 애플리케이션 보안 강화 , 토큰 기반 인증 |
Authentication | FirebaseAuth.unitypackage | 사용자 인증, 익명 사용자 지원, 사용자 관리 |
Cloud Functions | FirebaseFunctions.unitypackage | 서버리스 코드 실행, 이벤트 처리. HTTP API 생성 |
Cloud Firestore | FirebaseFirestore.unitypackage | NoSQL 문서형 DB, 실시간 동기화, 복잡한 쿼리 |
Cloud Storage | FirebaseStorage.unitypackage | 파일 저장 및 제공, 사용자별 파일 관리, 효율적인 대역폭 관리 |
Realtime Database | FirebaseDatabase.unitypackage | NoSQL 실시간 DB, 계층적 JSON 데이터, 오프라인 지원 |
Remote Config | FirebaseRemoteConfig.unitypackage | 앱 설정값 동적 변경, A/B 테스트, 조건부 값 제공 |
Realtime Database → 데이터베이스 만들기
→ 데이터베이스 위치 설정 (미국)
→ 테스트 모드에서 시작
→ 생성된 데이터 베이스 확인 (위의 링크를 추후 이용할 예정)
유니티 프로젝트 패키지 명을 확인해야 한다.
Edit → Project Settings → Player → Company Name, Product Name
또는 Other Settings → Bundle Identifier 는
Firebase 프로젝트에서 Unity 앱 추가 시 작성하였던 Package Name 과 동일해야 한다.
설명 | IMG |
---|---|
Firebase App | ![]() |
Unity Company Name & Project Name | ![]() |
Bundle Identifier | ![]() |
다른 버전의 유니티에서는 Bundle Identifier 이 아닌, 다른 이름으로 존재할수 도 있다.
Instance of GridPaintingState couldn't be created. The the script class needs to derive from ScriptableObject.
Assembly 'Assets/ExternalDependencyManager/Editor/1.2.175/Google.IOSResolver.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Generation of the Firebase Android resource file google-services.xml from Assets/Plugins/Android/google-services.json failed.
의 오류가 발생하였고, reddit 에서 1,2 번 오류와 해결 방법을 찾아 여러 시도 끝에 해결할 수 있었다.
해당 프로젝트의 Library 폴더를 삭제하고, 다시 유니티 프로젝트를 열어 해결할 수 있었다.
해당 오류를 해결하기 까지 많은 시간이 걸렸다.
Firebase 의 공식 홈페이지 문서와 많은 블로그, 유튜브 영상을 보며 Firebase 와 유니티를 연동하는 과정을 지켜봤지만,
내 프로젝트의 Assets - Plugins 의 폴더 안에 Android 라는 폴더가 존재하지 않아, 해당 부분이 문제가 될 것이라 생각했다.
SDK 를 여러 번 다운 받아 패키지를 임포트 해보기도 하였고,
새로운 프로젝트를 생성해서 새로 임포트 해봐도 Android 폴더는 존재 하지 않았다.
reedit 과 아래의 블로그 포스팅의 해결 방법처럼, Unity Hub → 설치 → 설정 → iOS Build Support 설치 를 진행해주었다.
이후, 프로젝트에서 File → Build Settings → Android → Switch Platform 을 해준 뒤,
SDK 의 패키지를 다시 임포트 해주어 해결할 수 있었다.
FirebaseAnalytics.unitypackage
, FirebaseAuth.unitypackage
, FirebaseDatabase.unitypackage
를 임포트해주었다.
이후, Assets/Plugins 폴더를 확인해보니 정상적으로 Android 폴더가 생성되었고,
해당 폴더로 google-services.json 파일을 옮겨주었다.
json파일을 이동한 후, 유니티를 한번 껐다가 켜줘야한다.
json파일을 기반으로 streamingassets폴더와 그 안에 파일이 생성되기 때문이다.