7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnityAdvent Calendar 2022

Day 17

[Unity]Firebaseを使ったプロジェクトの作り方(Analytics, Crashlytics)

Last updated at Posted at 2022-12-17

概要

UnityでFirebaseを導入したプロジェクトを作成する手順です
(Android実機での動作確認までやります)

本文

Unityプロジェクトを新規作成

とりあえずFirebaseTestという名前でプロジェクトを作ります
スクリーンショット 2022-12-17 8.57.12.png

BuildSettingsを表示(メニューからFile > Build Settings)してPlatformにAndroidを選びSwitch Platformを押します。続いてPlayer Settingsボタンを押して
スクリーンショット 2022-12-17 9.04.37.png

Project Settings画面でAndroidのタブが選択されている事を確認して、PackageNameにパッケージネームが入力されている事を確認します何も入力されていない時は入力してください。

スクリーンショット 2022-12-17 9.16.18.png

パッケージネームは後ほどFirebaseのコンソール画面で必要になります。
(ちなみにiOS版の場合は同じような手順でBundle Identifierの方を使います)

Firebaseプロジェクトの作成(FirebaseConsole)

WebブラウザでFirebaseConsole画面を開いてプロジェクトを作成
スクリーンショット 2022-12-17 9.33.04.png
画面の指示に従って設定していきます。Googleアナリティクスはお好みで設定してください。今回の記事ではAnalyticsも確認しますのでONにしておきます。
スクリーンショット 2022-12-17 9.34.24.png

プロジェクトの設定(FirebaseConsole)

ここまでの手順が終わったらこのような画面になりますので、Unityのマークを押します。
スクリーンショット 2022-12-17 9.38.03.png
1ページ目では先ほどUnity上で確認したPackageNameを入力します。

ちなみにiOS版の場合はUnity上でBundle Identifierを確認しておいてAppleバンドル IDに入力します。

スクリーンショット 2022-12-17 15.26.01.png
2ページ目でFirebase構成ファイルをダウンロードします。
(Androidならgoogle-service.json。iOSならGoogleService-Info.plist)

Firebase構成ファイルの内容はプロジェクトごとに違います。他のプロジェクトで流用してしまうと正常に動作しなくなりますので注意してください。

スクリーンショット 2022-12-17 15.31.04.png
3ページ目でFirebase Unity SDKをダウンロードします。
(圧縮ファイルなので、忘れずに解凍しておきましょう)

Firebase Unity SDKはプロジェクトによって変わるものではありません。バージョンに問題が無ければ他のプロジェクトに流用しても問題ありません。

スクリーンショット 2022-12-17 15.38.42.png

プロジェクトの設定(Firebase Unity SDK)

ここまで進んだらUnityへ戻ります。メニューからAssets > Import Package > Custom Packageを選びます。
ファイルの選択画面が表示されますので、使用したいFirebaseの機能に関連したファイルを選びます。(今回はまずFirebaseAnalytics.unitypackageをインポートして、その次にFirebaseCrashlytics.unitypackageをインポートしました)
スクリーンショット 2022-12-17 15.45.42.png
インポートの途中でこのようなポップアップが表示されたらEnableを押します。
スクリーンショット 2022-12-17 15.47.12.png

プロジェクトの設定(google-service.json)

ここまで進行するとAssetsフォルダ直下にFirebaseフォルダが出来ていると思います。この中に先ほどダウンロードしたgoogle-service.json(iOSの場合はGoogleService-Info.plist)をドラッグ&ドロップで入れてください。

多くの方の情報ではこのFirebaseフォルダに入れないと正常に動かないと書かれていますが、2022年12月現在ではAssetsフォルダ直下に置いても正常に動作することが確認できました。

スクリーンショット 2022-12-17 15.57.23.png

テスト実行

スクリプトを作成します


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class FirebaseInitializer : MonoBehaviour
{
    [SerializeField] private Button btnSetCrash;
    
    public State SetupState { get; protected set; } = State.Init;
    public enum State {
        Init,
        Success,
        Fail
    }
    
    void Start()
    {
        btnSetCrash.onClick.AddListener(TestCrash);
        Initialize();
    }

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

                // Set a flag here to indicate whether Firebase is ready to use by your app.
                SetupState = State.Success;
            } else {
                UnityEngine.Debug.LogError(System.String.Format(
                    "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
                // Firebase Unity SDK is not safe to use here.
                SetupState = State.Fail;
            }
        });
    }
    
    private void TestCrash()
    {
        throw new System.Exception("(ignore) this is a test crash");
    }
}

ボタンを押したらクラッシュ用メソッドが実行されるように設定します。
スクリーンショット 2022-12-17 16.45.40.png
ビルドしてAndroid実機で動作させます。

FirebaseCrashlyticsは発動したクラッシュが次回のアプリ起動時に通知されます。Crashlyticsのログを確認したいときは以下の手順を行なってください。
①アプリを起動してクラッシュさせる(Crashボタンを押す)
②アプリを終了して再起動する

結果確認(FirebaseConsole)

再度WebブラウザでFirebaseConsole画面を開いて結果を確認します。

[FirebaseAnalyticsの確認]
左のサイドメニューから 分析 > Dashboard
スクリーンショット 2022-12-17 16.14.58.png
[FirebaseCrashlyticsの確認]
左のサイドメニューから リリースとモニタリング > Crashlytics
スクリーンショット 2022-12-17 16.55.23.png

情報を取得できていることが無事確認できました!:open_hands_tone1:

(補足)プロジェクトからFirebaseをアンインストールしたい場合は

プロジェクトへの影響は大きいので、バージョン管理ツール等で操作を復元できる状態やテスト環境などで操作をしてください。

メニューからAssets > External Dependency Manager > Version Handler > Uninstall Managed Packages
スクリーンショット 2022-12-17 17.52.25.png
ポップアップが表示されます。消したい項目を選んでUninstall Selected Packagesを押します。
スクリーンショット 2022-12-17 17.52.38.png

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?