ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Firebase] 유니티에 파이어베이스 연동하기
    Unity 2025. 2. 1. 18:17

    개요

    이번에 유니티에서 구글 로그인 기능을 구현하기 위해 파이어베이스 연동을 진행해보았다.

    이 포스트에서는 기본적인 연동 방법만 정의하고, 다음 포스트에서 로그인 기능 구현에 관련하여 세세하게 다루도록 할 예정.

    0. 개발 환경

    • Unity 버전: 2022.3.34f1
    • Firebase Unity SDK :12.5.0
    • 대상 플랫폼: Android 

    1. Firebase 프로젝트 생성

    간단하게 파이어베이스가 무엇인지만 정의를 하고 가자면, 

    Firebase는 Google이 개발한 BaaS(Backend as a Service) 형태의
    모바일 및 웹 애플리케이션 개발 플랫폼

     

    사용할 수 있는 주요 기능등은 다음과 같다.

    • 실시간 데이터베이스(Realtime Database): 채팅과 같은 기능 구현에 최적화된 데이터베이스.
      실시간으로 데이터가 동기화되어 모든 클라이언트에게 즉시 반영됨

    • 사용자 인증(Authentication): 구글, 페이스북, 애플 등 다양한 로그인 업체를 지원.
      이메일/비밀번호, 전화번호 인증 등 다양한 인증 방식 제공

    • 호스팅(Hosting): 웹 앱, 정적/동적 콘텐츠를 위한 빠르고 안전한 호스팅 서비스.
      SSL 인증서를 자동으로 제공하며 전 세계 CDN을 통한 콘텐츠 전송

    • 로깅(Cloud Functions): 서버리스 함수를 실행할 수 있는 환경 제공.
      특정 이벤트 발생 시 자동으로 실행되는 백엔드 코드 작성 가능

    • 애널리틱스(Analytics): Google Analytics와 연동하여 사용자 행동,이벤트 추적.
      사용자 참여도, 매출, 인구통계 등 상세한 분석 제공

    • 크래시 리포트(Crashlytics): 앱이 비정상적으로 종료되는 경우 실시간으로 보고.
      크래시 발생 원인과 영향을 받은 사용자를 추적하고 문제 해결을 지원

    이외에도 사용할 수 있는 기능을 정말 많다. 

    백엔드 개발자를 구하기 힘든 팀 또는 개인에게 파이어베이스는 그저 빛...이랄까

     

    각설하고, 파이어베이스 프로젝트를 일단 생성해보자.(Unity는 프로젝트를 만들었다는 가정하에 진행)

    먼저 하단의 웹사이트로 진입한다.

    https://firebase.google.com/?gad_source=1&gclid=CjwKCAiAqfe8BhBwEiwAsne6gWpptSur3fw3hWzC748-s8YUamKw5f9eZ2_wklql_8AqC9LQU018NxoC8xcQAvD_BwE&gclsrc=aw.ds&hl=ko

     

    Firebase | Google's Mobile and Web App Development Platform

    개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요.

    firebase.google.com

    파이어베이스 메인

    파이어베이스를 처음 시작하는 분이라면 프로젝트가 아무것도 없을것이다. 

    상단의 프로젝트 만들기를 클릭하여 생성해준다. 

    이름 입력

    프로젝트 이름을 작성해준다. 한글은 작성이 불가하니 참고

    그러면 다음과 같은 애널리틱스 쓰겠냐고 물어보는 화면이 뜨는데, 이벤트 로그 같은 분석 기능을 쓰고자 한다면 사용하면 된다. 

    본인은 사용할 예정이기 때문에 계속

    애널리틱스 계정 설정

    사용하겠다고 설정하고 넘어오면 계정 선택을 진행하게 된다.

    기존에 본인이 애널리틱스 계정을 갖고 있다 하면 여기에 뜰거고, 새로 만드는것도 가능하다.

    물론 친절한 파이어베이스는 기본 계정을 하나 만들어주고, 해당 계정을 선택해서 들어가는것도 가능하다.

    프로젝트 만들기를 누르면 약간의 로딩 후에 만들어진다. 

    테스트 프로젝트 대시보드

    이제 시작이다.

    저기에 Unity로고가 보이는가? 

    해당 유니티 로고를 선택해보자.

    파이어베이스 설정 1

    일단 본인은 안드로이드 앱만 진행해볼 예정이다. 안드로이드 앱으로 등록을 체크하고 패키지 이름을 써주어야 한다. 

    근데 패키지 이름은 어디서 찾나?

    • File > Build Setting > Player Settings... > Player 탭에 Other Settings를 펼쳐서 좀만 내려보자.
    • Identification 탭에 다음과 같이 Package Name을 확인할 수 있다. 이걸 파이어베이스 Android 패키지 이름에 Ctrl +C,V 해주자.

    Idenfication(패키지 이름 찾기)

    이름까지 작성해주고 앱 등록을 눌러주자.

    그러면 google-services.json을 만들어서 다운로드 하라 하는데, 받아서 프로젝트 내에 넣어주자.

    근데 여기서 좀 조심해야 할것은, 아무데나 넣어도 된다고 하는데 본인은 제대로 동작하지 않았다.

    기본적으로 sdk를 다운받고 의존성 Resolv를 해주면 자동으로 생성된다고 하는것 같은데 , 본인은 제대로 동작하지 않았고
    그래서 해결책으로 StreamingAssets폴더를 만들어서 넣어주었다.

    여기서 컴퓨터에서도 간단하게 테스트 하려면 google-services-desktop.json을 만들어줘야 된다고 한다.

    google-services.json을 복사해서 이름만 바꿔주자.

    자 이제 세팅이 다 되었으면, 다음을 눌러주자.

     

    여기서 제공하는 sdk를 다운받아서 압축을 풀어주자. 

    압축을 풀어주면 다음과 같이 많은 파일을 확인할 수 있는데, 

    겁먹을 필요 없다.

    우리는 구글 애널리틱스와 인증 기능만 사용할 것이므로 

    • FirebaseAnalytics
    • FirebaseAuth

    두 패키지만 임포트 해주자.

    임포트 하는 방법은 친절하게 표시 되어있으니 패스

    우리가 설정한 안드로이드가 생성된것을 확인할 수 있다.

    2. 종속성 관리

    이제 파이어베이스가 제대로 연동되는지 한번 확인해보자!

    ...그 전에, 파이어베이스가 정상적으로 설치되었다면 EDM4U가 정상적으로 설치되었을 것이다. 

    하지만 본인은 어떤 문제 때문인지, 정상적으로 설치되지 않았고 그때문에 종속성이 박살나 테스트를 해도 안되는 문제에 직면했었다.

    잘 설치되었다면, Assets > External Dependency Manager 메뉴를 확인할 수 있을것이다.

    하지만 아무리 눈씻고 찾아봐도 안보인다면, 직접 추가해주자.

    Window > Package Manager로 들어가면, 왼쪽 상단에 플러스 버튼을 확인할 수 있다. 

    해당 버튼을 눌러서 Add Package from git url을 눌러 주면, Url을 입력할 수 있는 gui가 팝업된다. 

    https://github.com/googlesamples/unity-jar-resolver.git?path=upm

     

    unity-jar-resolver/upm at master · googlesamples/unity-jar-resolver

    Unity plugin which resolves Android & iOS dependencies and performs version management - googlesamples/unity-jar-resolver

    github.com

     

     

    일단 이 오픈소스를 제공해주시는 갓갓 개발자 님께 감사의 인사를 드린다. 

    아무튼, 좀 기다려보면 설치가 완료되고, 아까의 Assets메뉴에서 확인할 수 있을것이다. 

    설치가 완료되면 Android Dependency resolve 뭐시기 하면서 팝업이 하나 뜰텐데, resolve 눌러서 종속성을 정리하도록 냅두면 된다. 

    해당 버전에서는 따로 오류가 발생한게 없으므로, 종속성 해결 부분에서 오류가 있으면 댓글로 남겨주기 바란다. 

    해당 팝업이 뜨지 않는 경우에는 

     

    • Assets > External Dependency Manager > Android Resolver > Resolve

    를 눌러서 실행시켜주자.

    3. 코드 작성

    자 이제 연동을 진행해보자.

    유니티에서 코드를 하나 생성해주고, 파이어베이스 초기화 로직을 작성해준다. 

    using Firebase;
    using UnityEngine;
    
    public class FirebaseInitializer : MonoBehaviour
    {
        private void Awake()
        {
            FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
            {
                var dependencyStatus = task.Result;
                if (dependencyStatus == DependencyStatus.Available)
                {
                    Debug.Log("Firebase 초기화 성공!");
                }
                else
                {
                    Debug.LogError($"Firebase 초기화 실패: {dependencyStatus}");
                }
            });
        }
    
    }

     

    이후, 빈 게임 오브젝트를 만들어 이름을 이쁘게 지어주고, 해당 컴포넌트를 넣어주면된다.

    초기화 성공~

    자....파이어 베이스 연동에 성공하였다.

    햄보캐여~!~~~~

     

    사실상 보면 많이 할 건 없지만, 처음에 edm4u없는걸 눈치 못채고 빌드 돌리면서 머리 싸매고 있다가, 
    클로드에게 물어물어 깨달았다. 아직 수련이 부족하다....

    그래도 연동에 성공했으니, 다음은 로그인 기능 구현을 진행할 예정이다. 

    근데 파이어베이스로 바로 진행하진 않고, 
    뒤끝과의 연동을 통해서 진행할 예정이다. 

    그럼 마무리 하면서, 

    😘즐코(즐거운 코딩 되시길)!

Designed by Tistory.