コンソールへ移動

Firebase Remote Config for Unity を使ってみる

Firebase Remote Config を使ってアプリ内パラメータを定義し、その値をクラウドで更新することができます。これにより、アプリのアップデートを配布しなくてもアプリの外観や動作を変更できます。

Remote Config ライブラリは、アプリ内デフォルト パラメータ値を格納すること、更新されたパラメータ値をサービスからフェッチすること、フェッチ済みの値をアプリで有効にするタイミングを制御することにそれぞれ使用されます。詳しくは Remote Config API の概要をご覧ください。

Remote Config をアプリに追加する

Remote Config を使用するには、次の作業が必要です。

  • Firebase を使用するように Unity プロジェクトを登録して構成する。

    • Unity プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。

    • Unity プロジェクトがない場合は、サンプルアプリをダウンロードできます。

  • Unity プロジェクトに Firebase Unity SDK(具体的には FirebaseRemoteConfig.unitypackage)を追加する。

Firebase を Unity プロジェクトに追加するには、Firebase コンソールと開いている Unity プロジェクトの両方でタスクを行う必要があります(コンソールから Firebase 構成ファイルをダウンロードし、それを Unity プロジェクトに移動するなど)。

アプリ内デフォルト パラメータ値を設定する

Remote Config オブジェクトにデフォルトのパラメータ値を設定しておくと、サービスから値が取得されない場合にデフォルト値を使用することができます。これにより、Remote Config サービスに接続する前にアプリを意図したとおりに動作させることができます。

これを行うには、文字列辞書を作成し、追加するデフォルトを表す Key-Value ペアを入力します(SetDefaults を呼び出すと、文字列以外のプロパティはそのプロパティの型に変換されます)。

System.Collections.Generic.Dictionary defaults =
  new System.Collections.Generic.Dictionary();

// These are the values that are used if we haven't fetched data from the
// service yet, or if we ask for values that the service doesn't have:
defaults.Add("propertyname_string", "default local string");
defaults.Add("propertyname_int", 1);
defaults.Add("propertyname_float", 1.0);
defaults.Add("propertyname_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);

アプリ内で使うパラメータ値を取得する

ここまでの手順で、パラメータ値を Remote Config オブジェクトから取得できるようになりました。Remote Config サービスに設定した値をフェッチし、有効化すると、それらの値をアプリで使用できるようになります。または SetDefaults() を使って設定したアプリ内パラメータ値を取得します。

アプリ内パラメータ値を取得するには、GetValue() を呼び出します。このとき、引数としてパラメータキーを指定します。これは、ConfigValue を返します。ConfigValue には、値をさまざまな基本タイプに変換するプロパティがあります。

Firebase コンソールでアプリを接続する

Firebase コンソールでアプリを Firebase プロジェクトに追加します。

必要に応じてパラメータ値をサービスに設定する

  1. Firebase コンソールでプロジェクトを開きます。
  2. メニューから [Remote Config] を選択して Remote Config ダッシュボードを表示します。
  3. アプリで定義したパラメータと同じ名前のパラメータを定義します。それぞれのパラメータにデフォルト値(最終的にはアプリ内デフォルト値をオーバーライドします)や条件値を設定することができます。詳しくは Remote Config のパラメータと条件をご覧ください。

必要に応じてサービスから値をフェッチし、有効化する

Remote Config サービスからパラメータ値をフェッチするには、FetchAsync() メソッドを呼び出します。Remote Config サービスに設定したすべての値がフェッチされ、Remote Config オブジェクトにキャッシュされます。

FetchAsync() 経由でフェッチされた値は、フェッチが完了するとローカルにキャッシュされますが、ActivateFetched() が呼び出されるまでは使用できません。FetchAsync() は非同期で実行されるため、計算途中の場合や、問題や異常な動作を引き起こす可能性のある場合は、新しい値が適用されないようにすることができます。

(オプション)デベロッパー モードを有効にする

開発中にスロットリングを無効にするためにデベロッパー モードを有効にするには、FirebaseRemoteConfig.Setting プロパティを使用して新しい ConfigSettings を設定し、IsDeveloperMode を true に設定します。