Firebase Remote Config
アプリのアップデートを公開しなくても、アプリの動作と外観を変更できます。コストはかからず、1 日あたりのアクティブ ユーザー数に制限はありません。
主な機能
| アプリのユーザーに機能変更をすばやく公開する | サービス側パラメータ値を変更することで、アプリのデフォルトの動作や外観を変更することができます。たとえば、アプリのアップデートを公開しなくても、季節ごとのプロモーションをサポートするためにアプリのレイアウトや色のテーマを変更できます。 |
| ユーザーベースのセグメントに対してアプリをカスタマイズする | Remote Config を使って、ユーザーベースのさまざまなセグメント(アプリ バージョン、Firebase 向け Google アナリティクス オーディエンス リスト、言語など)に対してカスタマイズしたバリエーションを提供することができます。 |
| A/B テストを実施してアプリを改善する | Remote Config のランダム割り当て機能と Firebase 向け Google アナリティクスを使って、ユーザーベースのさまざまなセグメントに対してアプリの機能改善の A/B テストを行うことで、ユーザー全体に公開する前に機能改善を評価することができます。 |
仕組み
Remote Config には、パラメータ値のフェッチやキャッシュといった重要なタスクを処理するクライアント ライブラリが含まれています。また、アプリ デベロッパーは、新しい値が有効になる(したがってアプリのユーザー エクスペリエンスに反映される)タイミングを制御することができます。これにより、アプリのエクスペリエンスを保護することができます。
Remote Config クライアント ライブラリの get メソッドは、あらゆるパラメータ値を取得するためのメソッドです。アプリがサービス側の値を取得するために使用するロジックは、アプリ内デフォルト値を取得する場合と同じため、コードを何行も書かなくても Remote Config の機能をアプリに追加できます。
アプリ内デフォルト値をオーバーライドするには、Firebase コンソールまたは Remote Config REST API を使って、アプリ内で使用しているパラメータと同じ名前のパラメータを作成します。それぞれのパラメータにサービス側デフォルト値を設定することで、アプリ内デフォルト値をオーバーライドできます。また、条件値を作成して、特定の条件を満たすアプリ インスタンスのアプリ内デフォルト値をオーバーライドすることもできます。次の図は、パラメータ値がサービス側とアプリ内でどのように優先されるかを示しています。

パラメータ、条件、Remote Config が条件値間の競合を解決する方法について詳しくは、Remote Config のパラメータと条件についての記事をご覧ください。
実装のプロセス
| アプリと Remote Config を統合します。 | Remote Config を使ってアプリの動作と外観のどの側面を変更したいかを定義し、アプリ内で使うパラメータを作成します。 | |
| デフォルト パラメータ値を設定します。 |
setDefaults() を使って Remote Config パラメータのアプリ内デフォルト値を設定します。
|
|
| パラメータ値のフェッチ、有効化、取得を行うロジックを追加します。 |
アプリはサービスから安全かつ効率的にパラメータ値をフェッチし、フェッチ済みの値を有効化することができます。そのため、値をフェッチする最適なタイミングや、サービス側の値が存在するかどうかを心配することなくアプリを作成できます。アプリは、アプリ内に定義されたローカル変数の値を読み取るのと同じように、get メソッドを使ってパラメータの値を取得します。
|
|
| (必要に応じて)サービス側デフォルト値と条件パラメータ値を更新します。 | Firebase コンソールまたは Remote Config REST API で値を定義してアプリ内デフォルト値をオーバーライドすることができます。アプリ内デフォルト値とサービスからフェッチ済みの値のどちらの場合も、同じ get メソッドを使ってアクセスするため、値のオーバーライドはアプリの起動前でも起動後でも可能です。
|
ポリシーと制限
次のポリシーにご注意ください。
- Remote Config を使って、ユーザーの承認を必要とするアプリのアップデートを作成しないでください。信頼できないアプリであると判断されてしまうおそれがあります。
- 機密データを Remote Config のパラメータキーまたはパラメータ値に格納しないでください。プロジェクトの Remote Config 設定に格納されたパラメータキーやパラメータ値はデコードされてしまう可能性があります。
- Remote Config を使ってアプリのターゲット プラットフォームの要件を回避しようとしないでください。
Remote Config のパラメータと条件にはいくつかの制限があります。詳しくはパラメータと条件の制限についての記事をご覧ください。
次の制限があります。
Firebase プロジェクトは、パラメータと条件の制限に記載された長さとコンテンツの制限事項に従い、Remote Config のパラメータを 2,000 個保有できます。
Firebase で保存できる Remote Config テンプレートのバージョン数は、最大 300 までです。保存したテンプレートの有効期限は最大 90 日間です。詳細については、Remote Config テンプレートのバージョンを管理するをご覧ください。
その他の種類のデータを保存する方法
- Cloud Firestore は、Firebase と Google Cloud Platform からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。
- Firebase Realtime Database は JSON アプリケーション データ(ゲームの状態やチャット メッセージなど)を格納し、接続されているすべての端末で変更を瞬時に同期します。データベースのオプションの違いについては、データベースを選択: Cloud Firestore または Realtime Database をご覧ください。
- Firebase Hosting はグローバル アセット(ウェブサイトの HTML、CSS、JavaScript など)と、デベロッパーが提供するその他のアセット(グラフィック、フォント、アイコンなど)をホストします。
- Cloud Storage は、画像、動画、音声などのファイルや、ユーザーが作成したその他のコンテンツを保存します。
次のステップ
- Android と iOS 向けの Remote Config サンプルアプリ チュートリアル ガイドで、Remote Config の実例をご覧ください。
- 設計を開始します。まず API の概要を読んでから、Remote Config のパラメータと条件の詳細をご覧ください。
- Remote Config とアプリを統合します。Android での Firebase Remote Config の使用と iOS での Firebase Remote Config の使用についての記事をご覧ください。
- REST API を使用して Remote Config パラメータ値をプログラムで読み取り、変更する方法をご覧ください。
- Remote Config で A/B テストを作成する方法をご覧ください。

