[유니티/Unity] Firebase를 통해 Google 로그인 구현하기 - 1. 환경 설정
🎉 Firebase 프로젝트 생성
Firebase를 사용 하기 위해 프로젝트를 추가해줘야 합니다. 아래 순서에 따라 프로젝트를 생성해주세요.
Firebase Console에 접속하여 프로젝트 만들기
프로젝트 이름 입력
애널리틱스 사용 설정 (당장 사용할 내용이 아니라면 비활성화 해주셔도 됩니다.)
잠시 후 프로젝트가 생성된 것 확인
🗃️ Unity 앱에 Firebase 구성파일 추가
추가된 프로젝트의 메인화면(프로젝트 개요)에서 Unity 아이콘을 선택
‘Android 앱으로 등록’ 체크박스를 선택 후에 유니티 프로젝트의 패키지 이름과 동일하게 작성해줍니다.
(앱 닉네임은 비워두셔도 됩니다.)Android package 이름은
유니티 > Project Settings > Player > 안드로이드 설정 > Other Settings 하위 항목에서 확인 가능합니다.구성 파일(google-services.json)을 다운로드하여 유니티 프로젝트에 추가해줍니다. (어떤 경로에 있어도 상관은 없으나 저는 편의상 Assets경로에 Firebase 폴더를 생성하여 하위로 추가해주었습니다.)
Firebase Unity SDK를 다운로드 하여 Unity 프로젝트에 추가해줍니다.
➕ Unity 프로젝트에 Firebase SDK 추가
다운로드 받은 SDK중에 필요한 내용을 Unity 프로젝트에 import해줍니다.
지금은 FirebaseAuth.unitypackage만 추가해주면 됩니다.
(Assets > Import Package > Custom Package..)import가 완료되었다면 Android Resolve를 진행해줍니다.
📦 Firebase Authentication 설정
Firebase 프로젝트 콘솔 페이지로 돌아와 빌드 항목 하위에 위치한 Authenitication을 선택합니다
시작하기를 선택
로그인 제공업체에서 Google을 선택
(프로젝트의 공개용 이름은 우선 그대로 사용하고 지원 이메일에는 본인의 이메일을 작성했음)
하위의 외부 프로젝트 클라이언트 ID 허용 목록에 추가는 비워두셔도 되고,
웹 SDK 구성은 비워두고 저장하면 자동으로 생성됩니다.저장을 하게되면 다음과 같이 최신 구성 파일 다운로드 창이 뜹니다.
설정이 변경되었으니 좀 전에 유니티에 추가해주었던 구성 파일(google-services.json)을 다시 다운받아서 교체하라는건데, 아래 SHA-1 디지털 지문을 추가해준 뒤에 진행해주면 되기 때문에 지금은 건너뛰어도 됩니다.
🔍 SHA-1, SHA-256 디지털 지문 얻기
생성된 제공업체 Google 을 선택해준 뒤 SHA-1 출시 디지털 지문 링크에 진입하면 클라이언트 인증에 대한 설명과 지문을 가져올 수 있는 방법에 대해 설명되어있습니다만 몇가지 사전 준비가 필요하기 때문에 아래 내용을 따라 진행해주시면 됩니다.
지문을 얻기 위해서는 Unity 프로젝트의 keystore가 필요하기 때문에 없다면 생성해줍니다.
keystore 생성 방법에 대해서는 유니티에서 Keystore 생성하기문서를 를 참고해주세요.디지털 인증서 지문을 얻기 위해 JAVA의 keytool 유틸리티 사용이 필요하여 JAVA가 설치되어 있지 않다면 설치해줍니다.
JAVA 설치 (다운로드 링크)가이드 문서를 통해 OS에 맞는 명령어를 확인하여 터미널 환경에서 실행해줍니다.
(출시 인증서 지문, 디버그 인증서 지문을 가져오는 방법이 있는데, keystore를 생성해주었으니 출시 인증서 지문을 가져오는 방법으로 진행하겠습니다)<your-keyname> : Project Key의 Alias를 입력해주시면 됩니다. (아래 스크린샷 참고)
<path-to-production-keystore> : keystore의 경로를 모두 입력해주시면 됩니다. (확장자 포함)[Windows]
keytool 명령어가 정상적으로 실행되지 않는다면 Java 설치 경로로 이동해준 뒤에 실행해주시면 됩니다.cd C:\Program Files\Java\jre-{버전}\bin keytool -list -v \ -alias <your-key-name> -keystore <path-to-production-keystore>
[Mac]
진행 해본 결과 Mac OS의 경우 JAVA를 설치하게 되면 keytool 명령어를 바로 사용할 수 있는 것 같습니다.keytool -list -v \ -alias <your-key-name> -keystore <path-to-production-keystore>
명령어 입력 후 나오는 안내에 따라 비밀번호를 입력하면 SHA-1, SHA-256 디지털 지문을 확인할 수 있습니다
🔧 Firebase 프로젝트에 디지털 지문 추가
프로젝트 설정으로 진입합니다.
프로젝트 설정 > 일반 탭에서 디지털 지문 추가를 선택
좀 전에 확인된 SHA-1, SHA-256 을 모두 추가
디지털 지문 추가로 구성 파일이 변경되었기 때문에 구성파일(google-services.json)
을 다시 다운로드 받아서 유니티 프로젝트내 구성 파일을 새로운 구성파일로 교체정상적으로 추가가 되었다면 아래와 같은 변경사항이 보일겁니다.
(참고사항. 좀 전에 로그인 제공업체 Google 추가시 비워두었던 웹 SDK 구성 부분에서 클라이언트 ID가 자동으로 생성되어서 아래 client_id로 들어가게 됩니다.)
💡실제 프로젝트에서 GoogleSignInConfiguration 값을 입력하는 경우에는 WebClientId를 입력해줘야 해서 client_type이 3인 client_id를 사용해야 합니다.
➕ Google Signin SDK 추가
Firebase 와 Unity 연동 작업이 모두 끝났습니다.
하지만 Firebase에서 Google 인증을 사용하기 위해선 Google id_token이 필요한데, 이를 위해 Google 로그인이 선행되어야 합니다.
Google 로그인을 위해 별도 SDK를 추가해주도록 하겠습니다.
google-signin-unity Github 저장소를 통해 SDK 다운로드
유니티 프로젝트에 다운받은 내용 import
⚠import시에 Parse 경로 전체를 제외해주세요.google-signin-unity 플러그인이 오랫동안 업데이트 되지 않아 Parse가 포함되어 있습니다. 해당 내용을 추가할 경우 기존 내용과 충돌하여 다음과 같은 에러가 발생합니다.
혹시나 추가가 되어버렸다면 해당 내용을 삭제해주면 해결됩니다.import가 완료되었다면 Android Resolve를 진행해줍니다.
이제 Firebase Google 로그인을 위한 모든 설정이 끝났습니다!
로그인 구현 내용은 이어서 작성해보도록 하겠습니다..