Propagate Remote Config updates in real timeを試す

はじめに

Remote Configをリアルタイムで更新できるらしいと聞いて、試してみました。

firebase.google.com

試す

ちょうど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は未対応ですが、AndroidiOSはリアルタイム通知の新しい仕組みが提供されているらしく、 addOnConfigUpdateListenerを呼ぶだけで完結するようです、、。(これは嬉しい)

firebase.google.com