[TIL] Unity - Firebase 와 연동하기 (2)

MINO·2024년 12월 5일
0

2024-12-05


파이어베이스를 통한 회원가입과 로그인을 위해서는
먼저 유니티와 파이어베이스가 연동되어 있어야 한다.

Firebase 와 Unity 연동하기

1. Firebase 프로젝트 생성하기

Firebase 공식 홈페이지 → Go to Console
→ 프로젝트 만들기

→ Unity 용 Firebase SDK 다운로드
→ google-services.json 다운로드


2. Unity 프로젝트 설정

다운로드한 google-services.json 을 Assets 폴더로 이동.

다운로드한 Firebase SDK 파일을 Unity 프로젝트에 추가.
.unitypackage 파일을 Assets → Import Package → Custom Package 를 통해 임포트

프로젝트의 기능에 따라 필요한 패키지를 추가하자.

Firebase Package 정보

이름패키지기능
App CheckFirebaseAppCheck.unitypackage애플리케이션 보안 강화 , 토큰 기반 인증
AuthenticationFirebaseAuth.unitypackage사용자 인증, 익명 사용자 지원, 사용자 관리
Cloud FunctionsFirebaseFunctions.unitypackage서버리스 코드 실행, 이벤트 처리. HTTP API 생성
Cloud FirestoreFirebaseFirestore.unitypackageNoSQL 문서형 DB, 실시간 동기화, 복잡한 쿼리
Cloud StorageFirebaseStorage.unitypackage파일 저장 및 제공, 사용자별 파일 관리, 효율적인 대역폭 관리
Realtime DatabaseFirebaseDatabase.unitypackageNoSQL 실시간 DB, 계층적 JSON 데이터, 오프라인 지원
Remote ConfigFirebaseRemoteConfig.unitypackage앱 설정값 동적 변경, A/B 테스트, 조건부 값 제공

3. Unity 안에서 Firebase 와 Realtime Database 연동하기

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 이 아닌, 다른 이름으로 존재할수 도 있다.


트러블 슈팅

  1. Instance of GridPaintingState couldn't be created. The the script class needs to derive from ScriptableObject.

  2. 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?

  3. Generation of the Firebase Android resource file google-services.xml from Assets/Plugins/Android/google-services.json failed.

의 오류가 발생하였고, reddit 에서 1,2 번 오류와 해결 방법을 찾아 여러 시도 끝에 해결할 수 있었다.

참고 레딧

1 - 해결

해당 프로젝트의 Library 폴더를 삭제하고, 다시 유니티 프로젝트를 열어 해결할 수 있었다.

2 - 해결

해당 오류를 해결하기 까지 많은 시간이 걸렸다.

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 를 임포트해주었다.

3 - 해결

이후, Assets/Plugins 폴더를 확인해보니 정상적으로 Android 폴더가 생성되었고,
해당 폴더로 google-services.json 파일을 옮겨주었다.

json파일을 이동한 후, 유니티를 한번 껐다가 켜줘야한다.
json파일을 기반으로 streamingassets폴더와 그 안에 파일이 생성되기 때문이다.

참고 블로그


profile
안녕하세요 게임 개발하는 MINO 입니다.

0개의 댓글