この記事は リンクバルアドベントカレンダー2023 の23日目の記事です。
Firebaseのサービスの中に、アプリ内にダイアログなどでメッセージを送ることができるIn-App Messaging(FIAM)というものがあります。
その中のテスト機能を使って、メッセージ表示のテストをしているときに、あることを見落としていて、時間を食ってしまうということがありました。
その時は検索しても情報が出てこなかったので、同じ問題に直面している方に向けて記事を書きました。
Firebase In-App Messagingの使い方を軽く紹介
FIAMではカスタムイベントトリガーというものがあり、これを使うと、任意のタイミングでメッセージをユーザーに表示させることができます。
詳しくは省略しますが、プロジェクトでFirebaseを使えるように設定をした後、
Swiftの場合、アプリ側では以下のように記述して、
InAppMessaging.inAppMessaging().triggerEvent("onClick");
Firebaseコンソール側では以下のようにtriggerEventで設定したイベントを追加します。
このように設定すると、アプリでonClick引数を指定したtriggerEvent関数が呼ばれたときに、メッセージが表示されます。
遭遇した問題:デバイスでテストでイベントがうまくトリガーされない
FIAMではユーザーに配信する前に、特定のデバイスでテストをすることができます。
遭遇した問題は、デバイスでテストの時に、triggerEventが呼ばれた時でなく、
アプリの起動時にメッセージがトリガーされてしまうというものです。
問題の原因:テストメッセージの自動トリガー
原因はデバイスでテストする際の注として、しっかり書いてあるのですが、
デバイスでテストする際はアプリ起動時に自動的にトリガーされるというものでした。
要はただの見落としです😭
他の原因
ただの見落としでなく、そもそも表示がされない、という問題に直面することもあるかと思います。
その場合の確認すべき点もいくつかまとめてみました。
1,APIが無効になっている
Firebase In-App Messaging APIが有効になっていないと、使えないので、GCPのコンソールでAPIについて確認して、無効になっていたら有効にしてみてください。
2,インストールIDが間違っている
デバイスでテストする時には端末固有のインストールIDをログから調べて、コンソールで設定するかと思います。
それが、正しいか今一度ログで確認してみてください。特にシュミレーターを複数使っている場合などは、違うIDを使ってしまっているかもしれません。
最後に
FIAMは2023年現在はベータ版ということもあり、情報が少ない気がしますが、とても簡単にアプリ内メッセージを実装できるので、積極的に活用していきたいです。