はじめに
Remote Configをリアルタイムで更新できるらしいと聞いて、試してみました。
試す
ちょうどFlutterアプリを作成していたため、Flutterで試してみます。
関数作成
ドキュメントの通り、Functionsに関数を作成します(有料プランへのアップグレード必須)。
const functions = require("firebase-functions"); const admin = require("firebase-admin"); // ドキュメントでは省略されているが、adminを初期化してあげないとエラーを吐きます。 admin.initializeApp(); exports.pushConfig = functions.remoteConfig.onUpdate(() => { const payload = { topic: "REFRESH", data: { "key1": "value1", }, }; return admin.messaging().send(payload).then((resp) => { console.log(resp); return null; }); });
上記作業により、 remote configの変更時、"REFRESH"トピックを購読しているユーザーに対して、自動的にメッセージが送信されるようになります。
Firebase関連の依存関係を追加済みのFlutterアプリで、以下のコードを追加します。
FirebaseMessaging.onMessage.listen((RemoteMessage message) { FirebaseRemoteConfig.instance.fetchAndActivate(); });
最低限これを書いてあげれば、通知受信時にconfigの値をFirebaseのサーバーから取得してくれます。
あとがき
Flutterは未対応ですが、AndroidとiOSはリアルタイム通知の新しい仕組みが提供されているらしく、 addOnConfigUpdateListenerを呼ぶだけで完結するようです、、。(これは嬉しい)