このチャプターの目次
アプリにパッケージの追加
Firebase RemoteConfigの機能を使用するのでパッケージのインストールが必要です。
pubspec.yaml
# バージョンの指定は一例です。最新バージョンの使用を推奨します。
dependencies:
firebase_core: ^1.1.0
firebase_remote_config: ^0.10.0+2
Firebase で RemoteConfigの利用をスタートする。
詳しい説明は割愛しますが、
- Firebaseにてプロジェクト作成
- iOS, Android(実際に必要な方のみでもOK)アプリをプロジェクトに追加
- メニューからRemote Configを選択する(Engagement / エンゲージメント下にあります)
- アップデート情報用のパラメータ(パラメータキーと値)を追加
という手順を行いましょう。
例として、この解説では
パラメータキー: update_info
デフォルト値:(JSON)
{
"requiredVersion": "2.0.0",
"canCancel": true,
"enabledAt": "2020-07-12T12:00+09:00"
}
を追加したとします。
3つのパラメータを1つにまとめるためにJSONで値を記述しました。
Remote Configパラメータの条件とは
今回の解説では省略しましたが、「パラメータキー」、「値」の他に「条件」を設定できます。
指定することで、以下の条件で値を出し分けすることが可能になります。
- Androidと iOSなど、アプリやプラットフォーム
- アプリのバージョン
- 言語や国・地域
- アナリティクスと連携したユーザーオーディエンス情報
- ランダム(50%のユーザー、など)
RemoteConfigをアプリで使用するためのProviderを作成
Flutterアプリ内でRemote Configの初期設定とインスタンスを提供するProviderを実装しましょう。
remote_config_provider.dart
/// Firebase Remote Config Provider
final remoteConfigProvider = Provider<RemoteConfig>((ref) {
final rc = RemoteConfig.instance;
// 本番環境ではFetch間隔を12分に設定、開発環境では0
final flavor = ref.watch(flavorProvider);
final interval =
flavor == Flavor.production ? const Duration(minutes: 12) : Duration.zero;
// タイムアウトとフェッチのインターバル時間を設定する
rc.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: interval,
));
return rc;
});
これで、初期設定を済ませたRemoteConfigのインスタンスを remoteConfigProvider
経由で使用できるようになりました🎉
サンプルリポジトリでのコード全容はこちら
後編では、バージョンアップ情報の取得を解説します。
参考リンク