Firebase Remote Config を使ってアプリ内パラメータを定義し、その値をクラウドで更新できます。これにより、アプリのアップデートを配布しなくてもアプリの外観や動作を変更できます。
Remote Config ライブラリは、アプリ内のデフォルトのパラメータ値の保存、Remote Config バックエンドからの更新されたパラメータ値のフェッチ、フェッチされた値がアプリで使用できるようになるタイミングの制御に使用されます。詳細については、Remote Config の読み込み方法をご覧ください。
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.Dictionarydefaults = new System.Collections.Generic.Dictionary (); // These are the values that are used if we haven't fetched data from the // backend yet, or if we ask for values that the backend 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 プロジェクトにアプリを追加します。
パラメータ値を設定する
- Firebase コンソールでプロジェクトを開きます。
- メニューから [Remote Config] を選択して Remote Config ダッシュボードを表示します。
- アプリで定義したパラメータと同じ名前のパラメータを定義します。それぞれのパラメータに、デフォルト値(最終的にはアプリ内デフォルト値をオーバーライドします)や条件値を設定できます。詳しくは Remote Config のパラメータと条件をご覧ください。
値をフェッチして有効にする(必要な場合)
Remote Config バックエンドからパラメータ値をフェッチするには、FetchAsync()
メソッドを呼び出します。バックエンドに設定したすべての値がフェッチされ、Remote Config オブジェクトにキャッシュ保存されます。
FetchAsync()
経由でフェッチされた値は、フェッチが完了するとローカルにキャッシュされますが、ActivateFetched()
が呼び出されるまでは使用できません。FetchAsync()
は非同期で実行されるため、計算途中の場合や、問題や異常な動作を引き起こす可能性のある場合は、新しい値が適用されないようにできます。
(オプション)デベロッパー モードを有効にする
開発中にスロットリングを無効にするためにデベロッパー モードを有効にするには、FirebaseRemoteConfig.Setting
プロパティを使用します。このとき、IsDeveloperMode
を true に設定した新しい ConfigSettings
を設定します。