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


# unityで作成したアプリとfirebaseを接続する
Firebase公式のドキュメントUnity プロジェクトに Firebase を追加するがあるにあるのですが、いまいちわかりにくいので、健忘録がてらまとめました。

Androidのbuild環境を設定し、プレイヤーセッティングへ

カンパニーネームとプロダクトネームをユニークなものに設定する

Player settingsのOther settingの中を確認。

Package Nameがユニークなものになっているかを確認し、下の図のように設定されているかを確認する。

FireBaseコンソールに進み新しくプロジェクトを作成する

プロジェクトの名前をつける

アナリティクスを有効にする

自身のアナリティクスと紐付ける

しばらくするとプロジェクトが作られる

unityのマークを選択する

今回はAndroidのAppとして実装する

パッケージネームは先ほどUnityで設定したものを選ぶ

google-services.jsonをDLし、Assets>Dataの中に保存する


Firebase SDKをDLしたらコンソールにもどる

プロジェクトの設定に移動する

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

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

すると、パスワードを要求されるので、入力する。

SHA1の部分をコピーし、

プロジェクトの設定のフィンガープリントの部分に貼り付けて保存する。

メニューバーのAssets>Import Package>Custom Packageを選択し、先ほどDLしたSDKの中からAnaliticsを開く

全てImport

自動更新の設定を聞かれるので、Enableを選択する

初期に呼び出されるスクリプトを設定

Assets>Scriptフォルダを作成し、その中に下記のScriptを格納

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で開発したゲームの実機テストを行う方法

Run and Build and Run!!!

無事に動きました!

また、無事にFireBaseも起動しました!