목차

     

     

    Firebase 시작하는 법

    https://seonbicode.tistory.com/28

     

    [Firebase] 시작하기

    1. Firebase 사이트(https://firebase.google.com/)에 접속한 후 [시작하기] 를 클릭해준다. 2. [프로젝트 추가] 로 새로운 프로젝트를 만든다. 만약, 먼저 만든 프로젝트가 있다면 기존 프로젝트로 진입한다. 3..

    seonbicode.tistory.com

    윗 글을 참고하여 새로운 Firebase 프로젝트를 만들거나 기존의 Firebase 프로젝트에 접속한다.

     

     

    Firebase Project New App Add

    Web App

    더보기

    웹 앱에 Firebase 추가

    앱 닉네임

    Firebase Console 에서 웹 앱을 표시하는 데 사용된다. 사용자에게는 닉네임이 표시되지 않는다.

     

    또한 이 앱의 Firebase 호스팅을 설정하세요. 를 체크하면 Firebase Hosting 을 같이 설정 할 수 있으며 여기서 세팅을 할 경우 차후 Firebase Hosting 세팅을 해줄 필요가 없어진다.

    지구본 모양의 링크를 사용할 경우 자신의 프로젝트 이름.web.app 이라는 도메인을 가지게 되고

    새로운 사이트 만들기 를 클릭 시 자신이 임의로 사이트 이름을 설정할 수 있다. 중복된 이름을 사용할 수 없다.
    사이트 이름은 웹 앱 네임과 동일할 필요 없다.

    Firebase SDK 추가는 차후에 진행하면 되니 다음을 눌러 넘어간다.

     

    그리고 Firebase CLI 를 설치하기 위해 먼저 nodenpmexpress 3가지를 설치한다.

    https://seonbicode.tistory.com/38#Node.js_%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD_%EA%B5%AC%EC%B6%95 

     

    node 설치 이후 npm install -g firebase-tools 로 tool을 감사합니다.

     

    Firebase 호스팅에 배포는 차후에 진행하면 되니 콘솔로 이동을 눌러 넘어간다.

     

    Hosting에 대한 자세한 설정법은 이 글의 Hosting 설정법을 참고하고 Firebase SDK 추가도 Firebase 주요 키 값 항목을 참고하자.

     

    Android App

    더보기

    프로젝트가 다 만들어진 후 홈 화면에서 Unity3d 를 선택한다.

     

    2. Android 를 기준으로 진행하며 Unity3d Android에서 Package Name를 입력한다.

     

    구성 파일 다운로드, Firebase SDK 추가, 다음 단계의 경우 넘어가도 상관없다.

    차후에 사용하고자 하는 Firebase 기능의 SDK들을 그때그때 추가해주면 된다.

     

    3. SDK 다운로드 링크 : https://firebase.google.com/download/unity?hl=ko

    SDK 적용 도중 donet3, donet4의 선택 방법 아래를 참고하자

    Firebase Analytics 는 처음 Firebase 프로젝트를 만들때 활성화하지 않았다면 추가할 필요는 없다.

    Unity 5.x 이하 버전은 .NET 3.x 프레임워크를 사용하므로 dotnet3/FirebaseAnalytics.unitypackage를 가져옵니다.

    Unity 2017.x 이상 버전에서는 .NET 4.x 프레임워크를 사용할 수 있습니다. Unity 프로젝트가 .NET 4.x를 사용하는 경우 dotnet4/FirebaseAnalytics.unitypackage를 가져오세요.

    Unity 5.x 이하 버전은 .NET 3.x 프레임워크를 사용하므로 dotnet3/FirebaseAnalytics.unitypackage를 가져옵니다.

    Unity 2017.x 이상 버전에서는 .NET 4.x 프레임워크를 사용할 수 있습니다. Unity 프로젝트가 .NET 4.x를 사용하는 경우 dotnet4/FirebaseAnalytics.unitypackage를 가져오세요.

    차후에 사용하고자 하는 Firebase 기능의 SDK 들을 임포트해주면 된다.

     

    4. SDK 에서 다운로드할 수 있는 Firebase 제품 종류는 아래를 참고하자

     

    애널리틱스, 인증, Cloud Storage, 실시간 데이터베이스을 추가하면 된다.

    아직 Cloud Firestore은 Unity3d Firebase SDK 에서 지원하지 않는다.

     

    Firebase 제품 Unity 패키지 iOS 및 Android

    AdMob AdMob Unity 플러그인으로 별도 배포
    애널리틱스 FirebaseAnalytics.unitypackage
    인증 FirebaseAuth.unitypackage
    Cloud Functions FirebaseFunctions.unitypackage
    클라우드 메시징 FirebaseMessaging.unitypackage
    Cloud Storage FirebaseStorage.unitypackage
    Crashlytics FirebaseCrashlytics.unitypackage
    동적 링크 FirebaseDynamicLinks.unitypackage
    실시간 데이터베이스 FirebaseDatabase.unitypackage
    원격 구성 FirebaseRemoteConfig.unitypackage

    Import Package 를 통해 추가한다.

    SDK에 포함된 기능들을 빠르게 시작하고 싶다면 이 링크를 참고하자 -> https://github.com/firebase/quickstart-unity

     

     

    각 기능 세팅

    Authentication

    더보기

    인증 설정법

    1. [개발] 메뉴에서 Authentication 을 선택한다.

     

    2. [로그인 방법] 선택

    자신이 사용하고자 하는 로그인 방법을 사용 설정 한다.

    참고로 구글 로그인의 경우 SHA 인증서 지문 정보가 포함된 google-services.json 이 필요하며 구글 개발자 계정이 존재해야한다.

     

    Database

    더보기

    Database 설정법

    1. 개발 에서 [Database] 를 선택

     

    2. [데이터베이스 만들기] 클릭

     

    3. 프로적션 모드테스트 모드로 시작

    세팅 후 Database 규칙 탭에서 규칙을 변경할 수 있으니 아무 걱정없이 둘 중에 하나를 선택한다.
    https://firebase.google.com/docs/database/security?hl=ko 규칙에 대한 설명

     

    4. Cloud Firestore 위치를 asia-east2(홍콩) 이나 asia-northeast1(도쿄), asia-northeast2(오사카) 중 하나를 선택한다.

    Firebase 실시간 데이터베이스(Realtime Database) 은 적용되지 않는다. 위치에 대한 자세한 설명

     

    5. 데이터베이스가 활성화됨.

     

    Storage

    더보기

     Storage 설정법

    1. [개발] 에서 Storage 를 선택한다.

     

    2. [시작하기]

     

    3. [다음]

    저장소 보안 규칙

     

    4. [완료]

    Blaze 요금제를 사용하는 고객은 추가 버킷을 사용할 수 있다. 는 설명이 왼쪽 아래에 써있다.

     

    5. Storage 가 만들어졌다.

     

    Hosting

    더보기

    Hosting 설정법

    1. 개발 탭의 [Hosting] 을 선택한다.

     

    2. [시작하기] 버튼을 눌러 시작한다.

    위의  시작하기 창은 Firebase Hosting에서 모든 설정을 다 끝낸 후 배포를 끝내도 뜨는 경우가 있다.
    시작하기 창이 뜨면 일정시간 기다리면 알아서 사라지고 사라지지 않을 경우 시작하기 버튼을 누른 후 전부 다음 버튼을 눌러 넘어간다.

    Firebase Hosting을 설정할 경우 사이트 도메인은 기본적으로 자신의 Firebase 프로젝트이름.web.app 으로 설정된다. 

    사이트 도메인은 자신이 설정할 수 있다.

    자신이 설정한 사이트 이름을 사용하기 위해서는 

    약간 다른 추가 설정이 필요하다. 위와 같은 변경점 말고는 기본 도메인 설정과 동일하게 진행하면 된다.

     

    3. npm install -g firebase-tools 명령어를 실행해 툴을 설치한다.

    node와 npm 설치가 안되어 있다면 npm 명령어가 작동하지 않으니 node 설치부터 해주고 온다.

     

    4. 아래와 같은 내용이 나오면 그냥 다음 을 눌러 넘어간다.

    차후에 서버 구축 할때 같이 진행하는 것이 편하므로 지금은 Firebase Hosting 기능의 활성화를 목표로 하고 있으니 그냥 넘어가자.

     

    5. [Appnickname] 을 설정 하고 SDK 추가는 무시하고 [연결 및 계속하기] 버튼을 눌러 다음으로 넘어간다.

    SDK 추가는 무슨 버그가 있는지 계속 로딩 상태가 지속되니 무시하자. 차후에 구하면 된다.

     

    6. 무시하고 콘솔로 이동 버튼을 누르고 넘어간다.

     

     

    google-services.json

    google-services.json 은 Firebase 기능을 사용하기 위해 필요한 필수적인 파일이다.

    google-services.json 은 안드로이드 앱을 만들때 다운로드, 사용 할 수 있다.

     

    다운로드 받은 google-services.json은 Unity3d 프로젝트 Assets 폴더의 내부 경로에 위치하고 있어야한다.

    관리의 용이성을 위해 Assets/Firebase 폴더에 위치시켜 관리한다.

     

    google-services.json 의 설정 변경 시(패키지 이름 변경, SHA 인증서 지문 등...) 마다 새로 다운로드를 받아 Unity3d 프로젝트에 갱신해야한다. 

     

    Firebase 프로젝트에 새로운 Unity3d 앱을 추가 후 google-services.json 다운받기

    더보기

    자신의 Firebase 프로젝트에서 Unity3d 앱을 추가하는 작업을 시작한다.

     

    1번 앱 등록 항목에서 자신의 Unity3d Android App의 Package Name 을 작성해주고 다음으로 넘어간다.

    이 글의 목차 - Client (Unity3d) 항목에서 Package Name 을 설정, 얻는 법이 설명되어 있다.

     

    2번 구성 파일 다운로드 항목에서 google-services.json 을 다운로드 받아 설명과 같이 Assets 폴더에 넣거나 Assets 폴더 안에 Firebase 폴더를 만든 후 이 안에 넣어도 된다.

    google-services.json 파일은 Unity3d 프로젝트 안에만 위치하고 있으면 된다.

    다음으로 넘어간다.

     

    3번 항목은 이 글의 목차 - Client (Unity3d) 항목에 설명되어 있다. 다음으로 넘어간다.

     

    4번 항목에서 콘솔로 이동 을 눌러 앱 추가를 완료한다.

     

    자신의 Firebase 프로젝트에서 Unity3d 앱을 추가하는 작업을 시작한다.

     

    1번 앱 등록 항목에서 자신의 Unity3d Android App의 Package Name 을 작성해주고 다음으로 넘어간다.

    이 글의 목차 - Client (Unity3d) 항목에서 Package Name 을 설정, 얻는 법이 설명되어 있다.

     

    2번 구성 파일 다운로드 항목에서 google-services.json 을 다운로드 받아 설명과 같이 Assets 폴더에 넣거나 Assets 폴더 안에 Firebase 폴더를 만든 후 이 안에 넣어도 된다.

    google-services.json 파일은 Unity3d 프로젝트 안에만 위치하고 있으면 된다.

    다음으로 넘어간다.

     

    3번 항목은 이 글의 목차 - Client (Unity3d) 항목에 설명되어 있다. 다음으로 넘어간다.

     

    4번 항목에서 콘솔로 이동 을 눌러 앱 추가를 완료한다.

     

    Firebase 프로젝트에 기존의 Unity3d 앱에서 google-services.json 다운받기

    더보기

    자신의 Firebase Console 에서 프로젝트 설정으로 들어간다.

     

    일반 탭에서 조금 기다리다 보면 내 앱 항목이 로드가 된다.

     

    google-services.json 을 다운로드 받은 후 Assets 폴더에 넣거나 Assets 폴더 안에 Firebase 폴더에 안에 넣어도 된다.

    google-services.json 파일은 Unity3d 프로젝트 안에만 위치하고 있으면 된다.

    자신의 Firebase Console 에서 프로젝트 설정으로 들어간다.

     

    일반 탭에서 조금 기다리다 보면 내 앱 항목이 로드가 된다.

     

    google-services.json 을 다운로드 받은 후 Assets 폴더에 넣거나 Assets 폴더 안에 Firebase 폴더에 안에 넣어도 된다.

    google-services.json 파일은 Unity3d 프로젝트 안에만 위치하고 있으면 된다.

     

    SHA 인증서 지문

    더보기

    SHA 인증서 지문

    Unity3d 에서 생성한 keystore에서 얻을 수 있는 SHA 인증서 지문은 Firebase 인증 (Google 로그인 또는 전화번호 로그인을 사용 하는 경우) 및 Firebase 동적 링크 기능을 사용할때 필요하며 주로 SHA-1 유형의 지문을 주로 사용한다.

     

    File - Build Settings - Player Settings - Android 항목 - Publishing Settings - Keystore 설정을 해야한다.

    Create a new keystore... 선택 후 Browse Keystore 버튼을 클릭하여 keystore 생성 위치를 정한다. 생성 위치는 프로젝트 폴더 내에 위치하도록 한다.

    keystore 비밀번호를 설정한 후 key - Alias - Create a new key 를 선택하여 새로운 키를 생성한다.

     

    key 이름과 비밀번호를 설정한 후 Create Key 를 누른다.

     

     

     

    생성한 keystore 파일에서 Firebase 에 등록할 SHA 인증서 지문을 얻을 수 있다.

    MAC 터미널에서  keystore 파일이 생성된 위치로 cd 명령어를 사용하여 이동한다.

     

    keytool -list -v -keystore 자신의 키스토어 이름.keystore

     

    keystore가 있는 위치에서 위 코드를 실행한다. 터미널에 다양한 정보가 나오는데 그 중 인증서 지문 :  아래에 있는 SHA1 지문을 복사한다.

    복사한 SHA1 지문을 [자신의 Firebase Project - 프로젝트 설정 - 일반 탭]의 내 앱 중 Android 앱의 SHA 인증서 지문에 디지털 지문 추가

    버튼을 눌러 아까 복사한 SHA1 지문을 넣어준다.

    추가하면 위와 같이 SHA-1 로 추가된다.

     

    인증서 추가 후 google-services.json 을 다시 다운로드 받아 Unity3d 프로젝트에 다시 넣어준다.

     

     

    Firebase 주요 키 값

    Firebase SDK snippet

    더보기

    Firebase SDK 키 값은 Firebase Hosting 기능이나 Firebase 기능 사용을 하는 Firebase Web App 에서 사용한다.

     

    Firebase Console에서 톱니바퀴 - [프로젝트 설정] 을 누른다.

     

     

     

     

    처음 보이는 [일반] 탭 화면 아래쪽에 위치한 [내 앱] 항목에서 자신의 웹 앱 프로젝트을 누른다.

    그리고 Firebase SDK snippet 의 Firebase 구성 값을 복사하여 Web App에서 Firebase를 초기화 하는 부분에 넣어준다.

    만약 자신의 웹 앱을 눌렀을때 Firebase SDK snippet 항목이 보이지 않는다면 잠시만 기다리면 로드된다.

    Firebase 구성 값은 주로 서버의 스크립트들에서 사용한다.

     

    만약 자신의 Web App이 Firebase Hosting 기능을 사용 중이라면 자동 기능이 활성화된다.

    예약된 URL에서 동적으로 Firebase 자바스크립트 SDK 라이브러리를 로드하도록 앱을 구성할 수 있다.
    위 기능을 이용하여 구성하면 Firebase 구성을 자동으로 가져오며 로컬에서 테스트할 때에도 이용할 수 있다.
    자세한 설정법은 https://firebase.google.com/docs/web/setup?authuser=0#add-sdks-initialize 이 링크의 호스팅 URL에서 추가 탭을 참고하자.

     

    HTML 같은 웹페이지 마크업 언어에서는 CDN 방식을 사용한다.

     

     Firebase Admin SDK

    더보기

    Firebase Admin SDK

    Firebase Admin SDK는 서버에서 관리자 권한 환경에서 Firebase 와 상호 작용하고자 할때 사용한다.

    1. 전체 관리자 권한으로 실시간 DB 데이터를 읽고 쓰며 Cloud Storage 버킷(Firebase Storage) 과 같은 Google Cloud Platform 리소스에 엑세스한다.

    2. FCM 서버 프로토콜에 대한 간단한 접근법을 사용하여 프로그래매틱 방식으로 Firebase 클라우드 메시징 메시지를 전송한다.

    3. Firebase 인증 토큰을 생성하고 검증한다.

    4. 간소화된 관리자 콘솔을 직접 만들어 인증을 위해 사용자 데이터 조회, 사용자의 이메일 주소 변경과 같은 작업을 수행한다.

     

    지원 언어에 대한 자세한 설명은 https://firebase.google.com/docs/admin/setup?authuser=0 에서 참고한다.

     

    Firebase Console에서 톱니바퀴 - [프로젝트 설정] 을 누른다.

     

     

     

    서비스 계정 탭으로 이동 후

     

     자신의 서버 언어를 선택한 후 새 비공개 키 생성 버튼을 눌러 Admin SDK 를 다운로드 받는다.

    var admin = require("firebase-admin");
    
    var serviceAccount = require("path/to/serviceAccountKey.json");
    
    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount),
      databaseURL: "https://unity3dfirebase.firebaseio.com"
    });
    

    와 같이 json 파일을 불러와 사용해도 되고

    초기화함수 Admin SDK Json 키값을 직접 붙여넣어 사용해도 된다.

     

     

    Unity3d Client Setting

    더보기

    Build Settings -> Android 로 Switch Platform 해준다.

     

    Player Settings... 누른 후 아래와 같이 64bit로 세팅해준다.

    중요 설정 값

    PakageName - 기본 이름을 사용하면 안되고 임의의 값으로 수정해줘야한다. (Ex. com.TestCompany.TestMan)

    Scripting Baakend - IL2CPP

    Api Compatibility Level - .NET 4.x

    Target Architectures - ARM64

     

     

    Firebase 주요 다운로드

    이름 주소
    Firebase Unity SDK https://firebase.google.com/download/unity?hl=ko
    Node.js https://nodejs.org/ko/
    google-signin-unity https://github.com/googlesamples/google-signin-unity/releases
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기