2022 年 10 月 18 日に開催される Firebase Summit に、直接会場で、またはオンラインでご参加ください。Firebase を使用してアプリ開発を加速させ、自信を持ってアプリをリリースし、簡単にスケールする方法をご紹介します。 今すぐ申し込む

Firebase Remote Config を使ってみる

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。


Firebase Remote Config を使ってアプリ内パラメータを定義し、その値をクラウドで更新できます。これにより、アプリのアップデートを配布しなくてもアプリの外観や動作を変更できます。このガイドでは、作業を開始するための手順について説明し、サンプルコードをいくつか示します。

ステップ 1: Firebase と Remote Config SDK をアプリに追加する

  1. Flutter 用の Firebase SDK をインストールして初期化します(まだ行っていない場合)。

  2. Remote Config で、ユーザー プロパティとオーディエンスを対象としたアプリ インスタンスの条件付きターゲティングを行うには、Google アナリティクスが必要です。プロジェクトで Google アナリティクスを有効にしてください。

  3. Flutter プロジェクトのルート ディレクトリから、次のコマンドを実行して Remote Config プラグインをインストールします。

    flutter pub add firebase_remote_config
    

    また、Remote Config の設定の一環として、Google アナリティクス用の Firebase SDK をアプリに追加する必要もあります。

    flutter pub add firebase_analytics
    
  4. プロジェクトを再ビルドする

    flutter run
    

ステップ 2: Remote Config シングルトン オブジェクトを取得する

Remote Config オブジェクトのインスタンスを取得し、最小フェッチ間隔を設定して更新の頻度を増やせるようにします。

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

このシングルトン オブジェクトは、アプリ内デフォルト パラメータ値の保存、更新されたパラメータ値のバックエンドからのフェッチ、フェッチされた値がアプリで使用できるようになるタイミングの制御に使用されます。

開発時には、比較的短い最小フェッチ間隔を設定することをおすすめします。詳細については、スロットル処理をご覧ください。

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

アプリ内デフォルト パラメータ値を Remote Config オブジェクトに設定すると、Remote Config バックエンドに接続する前にアプリを意図したとおりに動作させることができます。また、バックエンド側に値が設定されていない場合は、これらのデフォルト値を使用できます。

await remoteConfig.setDefaults(const {
    "example_param_1": 42,
    "example_param_2": 3.14159,
    "example_param_3": true,
    "example_param_4": "Hello, world!",
});

ステップ 4: アプリ内で使用するパラメータ値を取得する

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

これらの値を取得するには、アプリによって予期されるデータ型に対応した以下のメソッドを呼び出します。このとき、引数としてパラメータキーを指定します。

  • getBool()
  • getDouble()
  • getInt()
  • getString()

ステップ 5: Remote Config バックエンドでパラメータ値を設定する

Firebase コンソールまたは Remote Config バックエンド API を使用して、サーバーサイドの新しいデフォルト値を作成できます。このデフォルト値は、目的の条件付きロジックまたはユーザー ターゲティングに従って、アプリ内の値をオーバーライドします。このセクションでは、Firebase コンソールでこれらの値を作成するための手順を説明します。

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

ステップ 6: 値をフェッチして有効にする

  1. Remote Config バックエンドからパラメータ値をフェッチするには、fetch() メソッドを呼び出します。バックエンドに設定したすべての値がフェッチされ、Remote Config オブジェクトに保存されます。

  2. フェッチ済みのパラメータ値をアプリで使用できるようにするには、activate() メソッドを呼び出します。

    1 回の呼び出しで値をフェッチして有効化する場合は、fetchAndActivate() リクエストを使用して Remote Config バックエンドから値をフェッチし、それらをアプリで利用できるようにします。

    await remoteConfig.fetchAndActivate();
    

これらの更新されたパラメータ値はアプリの動作と外観に影響するので、スムーズなユーザー エクスペリエンスを実現するタイミング(次にユーザーがアプリを開いたときなど)でフェッチ済みの値を有効化する必要があります。詳細と例については、Remote Config の読み込み方法をご覧ください。

スロットル処理

アプリが短期間に何度もフェッチすると、フェッチ呼び出しが抑制され、FirebaseRemoteConfiglastFetchStatus プロパティの値が RemoteConfigFetchStatus.throttle になります。

Remote Config のデフォルトの最小フェッチ間隔は 12 時間です。つまり、実際にフェッチ呼び出しが行われた回数に関係なく、12 時間のウィンドウ内で構成ファイルがバックエンドから複数回フェッチされることはありません。

アプリの開発では、構成ファイルを頻繁にフェッチして(1 時間に何度も)有効にし、アプリの開発とテストを迅速にイテレーションすることをおすすめします。最大 10 人の開発者がいるプロジェクトで迅速なイテレーションに対応するには、一時的に最小フェッチ間隔を setConfigSettings() に設定します。

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));

次のステップ

Remote Config のユースケースに関する詳細な情報が必要な方は、主要なコンセプトと高度な戦略に関する以下のドキュメントをご覧ください。