unityで作成したアプリとfirebaseを接続し、Android実機でテストする方法


＃　unityで作成したアプリとfirebaseを接続する
Firebase公式のドキュメント[Unity プロジェクトに Firebase を追加する](https://firebase.google.com/docs/unity/setup)があるにあるのですが、いまいちわかりにくいので、健忘録がてらまとめました。

##Androidのbuild環境を設定し、プレイヤーセッティングへ
[![Image from Gyazo](https://i.gyazo.com/03571c86918b70734e350722aaeae3f8.png)](https://gyazo.com/03571c86918b70734e350722aaeae3f8)

##カンパニーネームとプロダクトネームをユニークなものに設定する
[![Image from Gyazo](https://i.gyazo.com/0dbe2043c2cfd5cc34413aee3506cdb3.png)](https://gyazo.com/0dbe2043c2cfd5cc34413aee3506cdb3)

##Player settingsのOther settingの中を確認。
Package Nameがユニークなものになっているかを確認し、下の図のように設定されているかを確認する。
[![Image from Gyazo](https://i.gyazo.com/93eb2502343741e2463f9b8571c345b1.png)](https://gyazo.com/93eb2502343741e2463f9b8571c345b1)

[FireBaseコンソール](https://console.firebase.google.com)に進み新しくプロジェクトを作成する
[![Image from Gyazo](https://i.gyazo.com/c4c010c1fc604ddc48dd94fb65184774.png)](https://gyazo.com/c4c010c1fc604ddc48dd94fb65184774)

##プロジェクトの名前をつける
[![Image from Gyazo](https://i.gyazo.com/f9dae8f2abcf1ad3ac7e993173857a34.png)](https://gyazo.com/f9dae8f2abcf1ad3ac7e993173857a34)

##アナリティクスを有効にする
[![Image from Gyazo](https://i.gyazo.com/d92c5ebf5fa9b445e2fbbcb127d1f776.png)](https://gyazo.com/d92c5ebf5fa9b445e2fbbcb127d1f776)

##自身のアナリティクスと紐付ける
[![Image from Gyazo](https://i.gyazo.com/0ea6234b2d33741c895dc6bbbd9551ef.png)](https://gyazo.com/0ea6234b2d33741c895dc6bbbd9551ef)

##しばらくするとプロジェクトが作られる
[![Image from Gyazo](https://i.gyazo.com/1c2231dcb05c087addec62dd1ba235fb.png)](https://gyazo.com/1c2231dcb05c087addec62dd1ba235fb)

##unityのマークを選択する
[![Image from Gyazo](https://i.gyazo.com/b14f605785b807c0d1cf228f8de57254.png)](https://gyazo.com/b14f605785b807c0d1cf228f8de57254)

##今回はAndroidのAppとして実装する
パッケージネームは先ほどUnityで設定したものを選ぶ
[![Image from Gyazo](https://i.gyazo.com/b1d35a3859d5a77ffcfac7d0e39ab2dc.png)](https://gyazo.com/b1d35a3859d5a77ffcfac7d0e39ab2dc)

##google-services.jsonをDLし、Assets>Dataの中に保存する
[![Image from Gyazo](https://i.gyazo.com/e6c19c51b033567189f4bbc549d37311.png)](https://gyazo.com/e6c19c51b033567189f4bbc549d37311)
[![Image from Gyazo](https://i.gyazo.com/b1006ccf0d58afb809fd95fba864b0a0.png)](https://gyazo.com/b1006ccf0d58afb809fd95fba864b0a0)

##Firebase SDKをDLしたらコンソールにもどる
[![Image from Gyazo](https://i.gyazo.com/9e330de40be4ed1eaed3e74e80268b20.png)](https://gyazo.com/9e330de40be4ed1eaed3e74e80268b20)

##プロジェクトの設定に移動する
[![Image from Gyazo](https://i.gyazo.com/2d6c3e0f94287b73376258205de2f762.png)](https://gyazo.com/2d6c3e0f94287b73376258205de2f762)

##SHA1を設定するために、ターミナルに下記コマンドを入力する

```:ターミナル
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
```

すると、パスワードを要求されるので、入力する。
[![Image from Gyazo](https://i.gyazo.com/90fa7989bbba76bbad23388ac38080b9.png)](https://gyazo.com/90fa7989bbba76bbad23388ac38080b9)

SHA1の部分をコピーし、
[![Image from Gyazo](https://i.gyazo.com/017f960ef88e7fc15d53b545b563cff4.png)](https://gyazo.com/017f960ef88e7fc15d53b545b563cff4)

プロジェクトの設定のフィンガープリントの部分に貼り付けて保存する。
[![Image from Gyazo](https://i.gyazo.com/0e7fbb0c4bb48639654c454c24db81a0.png)](https://gyazo.com/0e7fbb0c4bb48639654c454c24db81a0)

##メニューバーのAssets>Import Package>Custom Packageを選択し、先ほどDLしたSDKの中からAnaliticsを開く
[![Image from Gyazo](https://i.gyazo.com/7fb342a7d7bb023a0058f031fb69fcd8.png)](https://gyazo.com/7fb342a7d7bb023a0058f031fb69fcd8)

全てImport
[![Image from Gyazo](https://i.gyazo.com/26fac2724ad6dcdbc2bdbd326130e2c7.png)](https://gyazo.com/26fac2724ad6dcdbc2bdbd326130e2c7)

自動更新の設定を聞かれるので、Enableを選択する
[![Image from Gyazo](https://i.gyazo.com/150adbda9555ef2aa6fb422c277ee33e.png)](https://gyazo.com/150adbda9555ef2aa6fb422c277ee33e)

##初期に呼び出されるスクリプトを設定
Assets>Scriptフォルダを作成し、その中に下記のScriptを格納

```c#:FirebaseInit.cs
using System.Collections;
using System.Collections.Generic;
using Firebase;
using Firebase.Analytics;
using UnityEngine;


// Google認証
using Google;

public class FirebaseInit : MonoBehaviour
{

    private FirebaseApp app;

    // Start is called before the first frame update
    public virtual void Start()
    {

        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
        {
            var dependencyStatus = task.Result;
            if (dependencyStatus == DependencyStatus.Available)
            {
                // Create and hold a reference to your FirebaseApp,
                // where app is a Firebase.FirebaseApp property of your application class.
                app = FirebaseApp.DefaultInstance;

                FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);

                // Set a flag here to indicate whether Firebase is ready to use by your app.
            }
            else
            {
                //Debug.LogError(System.String.Format(
                //  "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
                // Firebase Unity SDK is not safe to use here.
                Debug.LogError("Could not resolve all Firebase dependencies: " + dependencyStatus);
            }
        });
    }

}
`````

##Androidのエミュレートは実機を使用
接続の方法は、下記を参考に。
[【Android】Unityで開発したゲームの実機テストを行う方法](https://miyagame.net/unity-real-machine-android/)

##Run and Build and Run!!!
[![Image from Gyazo](https://i.gyazo.com/b332dd0587d2c0c0a7a9820d43f7e330.png)](https://gyazo.com/b332dd0587d2c0c0a7a9820d43f7e330)

無事に動きました！
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">とりあえず、unityで作成したテストアプリをAndroidに実装できました！<a href="https://twitter.com/hashtag/unity?src=hash&amp;ref_src=twsrc%5Etfw">#unity</a><a href="https://twitter.com/hashtag/%E3%82%B9%E3%82%BF%E3%82%B8%E3%82%AA%E3%81%97%E3%81%BE%E3%81%A5?src=hash&amp;ref_src=twsrc%5Etfw">#スタジオしまづ</a><a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a> <a href="https://t.co/hC6FOA8ypE">pic.twitter.com/hC6FOA8ypE</a></p>&mdash; Unity勉強中の整形外科医：北城雅照|医療者向けプログラミングスクール「もいせん」開校！ (@teru3_kitashiro) <a href="https://twitter.com/teru3_kitashiro/status/1407320514415063043?ref_src=twsrc%5Etfw">June 22, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

また、無事にFireBaseも起動しました！
[![Image from Gyazo](https://i.gyazo.com/ef3dbe3494cf651854960a3c4a9f704e.png)](https://gyazo.com/ef3dbe3494cf651854960a3c4a9f704e)