Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase Remote Config

アプリのアップデートを公開しなくても、アプリの動作と外観を変更できます。コストはかからず、1 日あたりのアクティブ ユーザー数の制限もありません。

Firebase Remote Config は、ユーザーにアプリのアップデートをダウンロードしてもらわなくても、アプリの動作や外観を変更できるクラウド サービスです。Remote Config を使用すると、アプリの動作や外観を制御するアプリ内デフォルト値を作成できます。その後、Firebase コンソールか Remote Config バックエンド API を使用して、すべてのアプリユーザーまたはユーザーベースの特定セグメントに対して、アプリ内デフォルト値をオーバーライドできます。アップデートを適用するタイミングはアプリ側で制御できます。アプリはアップデートの有無を頻繁にチェックし、パフォーマンスにほとんど影響をおよぼすことなくアップデートを適用できます。

iOS の設定 Android の設定 ウェブの設定 C++ の設定 Unity の設定 バックエンド API

主な機能

アプリのユーザーベースに機能変更をすばやく公開する サーバー側パラメータ値を変更することで、アプリのデフォルトの動作や外観を変更できます。たとえば、アプリのアップデートを公開しなくても、季節ごとのプロモーションをサポートするためにアプリのレイアウトや色のテーマを変更できます。
ユーザーベースのセグメントに対してアプリをカスタマイズする Remote Config を使用すると、ユーザーベースのさまざまなセグメントに対し、アプリのバージョン、言語、Google アナリティクスのオーディエンスインポートしたセグメントに応じたさまざまなアプリユーザー エクスペリエンスを実現できます。
A/B テストを実施してアプリを改善する アプリをユーザーベース全体に公開する前に、Remote Config のランダム パーセンタイル ターゲティングと Google アナリティクスを使って、ユーザーベースのさまざまなセグメントに対してアプリの機能改善の A/B テストを行い、機能改善を評価できます。

仕組み

Remote Config には、パラメータ値のフェッチやキャッシュといった重要なタスクを処理するクライアント ライブラリが含まれています。また、新しい値が有効になる(したがってアプリのユーザー エクスペリエンスに反映される)タイミングを制御できます。このため、変更のタイミングを制御することによって、アプリのエクスペリエンスを保護できます。

Remote Config クライアント ライブラリの get メソッドを介して、あらゆるパラメータ値にアクセスできます。アプリがサーバー側の値を取得するために使用するロジックは、アプリ内デフォルト値を取得する場合と同じであるため、大量のコードを記述することなく Remote Config の機能をアプリに追加できます。

アプリ内デフォルト値をオーバーライドするには、Firebase コンソールか Remote Config バックエンド API を使用して、アプリで使用するパラメータと同じ名前のパラメータを作成します。それぞれのパラメータに、アプリ内デフォルト値をオーバーライドするサーバー側デフォルト値を設定できます。また、特定の条件を満たすアプリ インスタンスについてアプリ内デフォルト値をオーバーライドする条件値をパラメータごとに作成することもできます。この図は、Remote Config バックエンドとアプリ内でパラメータ値の優先順位がどのように決められるかを示しています。

パラメータ、条件、Remote Config が条件値間の競合を解決する方法について詳しくは、Remote Config のパラメータと条件をご覧ください。

実装パス

アプリと Remote Config を統合する Remote Config を使ってアプリの動作と外観のどの側面を変更したいかを定義し、アプリ内で使うパラメータを作成します。
デフォルト パラメータ値を設定する setDefaults() を使って Remote Config パラメータのアプリ内デフォルト値を設定します。
パラメータ値のフェッチ、有効化、取得を行うロジックを追加する アプリでは、Remote Config バックエンドからパラメータ値を安全かつ効率的にフェッチし、フェッチされた値を有効化できます。そのため、値をフェッチする最適なタイミングや、サーバー側の値が存在するかどうかを心配することなくアプリを作成できます。アプリでは、get メソッドを使用してパラメータの値を取得します。これは、アプリで定義されたローカル変数の値を読み取ることに似ています。
(必要に応じて)サーバー側デフォルト値と条件パラメータ値を更新する Firebase コンソールまたは Remote Config バックエンド API で値を定義して、アプリ内デフォルト値をオーバーライドできます。アプリ内デフォルト値にも、Remote Config バックエンドからフェッチされた値にも、同じ get メソッドを使ってアクセスするため、値のオーバーライドはアプリを起動する前と後のどちらでも可能です。

ポリシーと制限

次のポリシーにご注意ください。

  • Remote Config を使って、ユーザーの承認を必要とするアプリのアップデートを作成しないでください。信頼できないアプリであると判断されてしまうおそれがあります。
  • 機密データを Remote Config のパラメータキーまたはパラメータ値に格納しないでください。プロジェクトの Remote Config 設定に格納されたパラメータキーやパラメータ値はデコードされてしまう可能性があります。
  • Remote Config を使ってアプリのターゲット プラットフォームの要件を回避しようとしないでください。

Remote Config のパラメータと条件にはいくつかの制限があります。詳しくはパラメータと条件の制限をご覧ください。

次の制限があります。

  • Firebase プロジェクトは、パラメータと条件の制限に記載された長さとコンテンツの制限事項に従い、Remote Config のパラメータを 2,000 個保有できます。

  • Firebase で保存できる Remote Config テンプレートのバージョン数は、最大 300 までです。保存したテンプレートの有効期限は最大 90 日間です。テンプレートとバージョニングをご覧ください。

その他の種類のデータを保存する方法

  • Cloud Firestore は、Firebase と Google Cloud からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。
  • Firebase Realtime Database は JSON アプリケーション データ(ゲームの状態やチャット メッセージなど)を格納し、接続されているすべてのデバイスで、変更を瞬時に同期します。データベースのオプションの違いについては、データベースの選択: Cloud Firestore または Realtime Database をご覧ください。
  • Firebase Hosting はグローバル アセット(ウェブサイトの HTML、CSS、JavaScript など)と、デベロッパーが提供するその他のアセット(グラフィック、フォント、アイコンなど)をホストします。
  • Cloud Storage は、画像、動画、音声などのファイルや、ユーザーが作成したその他のコンテンツを保存します。

次のステップ