Firebase Invites から Dynamic Links とカスタム共有機能への移行

Firebase Invites は、アプリ内で Firebase Dynamic Links を受信するためのメカニズムと、SMS またはメールを介してリンクを共有するための機能を提供してきました。クチコミでアプリのユーザー数を増やせるようにするために Firebase Invites を開発しましたが、Firebase Invites の現在の機能よりも優れた、ユーザーがお気に入りのアプリを友だちと共有するように奨励するためのより良い方法があることがわかりました。

また、Firebase Invites の使用は減少しており、その一方でユーザー間共有ソリューションの重要な要素として Firebase Dynamic Links を使用しているユーザーが多くいることが判明しました。そのため、Firebase Dynamic Links がアプリにユーザー間の共有機能を組み込むための最良の方法になるように注力していくことにしました。この移行の一環として、Firebase Invites の機能を非推奨にし、2020 年 1 月 24 日をもってサポートを終了することにしました。

この決定はどのような意味を持ちますか?利用者にとってどのような影響がありますか?

2020 年 1 月 24 日以降、ユーザーは Firebase Invites を送受信できなくなり、招待リンクを送受信するための呼び出しを行うと、Invites のバックエンド サービスからエラー応答が返されるようになります。現在の SDK にはこうしたサーバーのエラー応答を適切に処理するためのエラー処理機能が含まれているため、アプリがクラッシュすることはなく、ユーザーはアプリを使い続けることができます。ただし、今後は Firebase Invites を使用するのではなく、Firebase Dynamic Links とカスタム共有ソリューションを組み合わせた代替ソリューションに切り替えることを推奨します。

ここでは、その方法について説明します。

まず、ユーザーが友だちと共有できるダイナミック リンクを作成します。これは Firebase Invites の設定方法と似ているので、この手順は簡単に実行できるでしょう。ユーザーがソーシャル ネットワークを通じてアプリを共有する場合は、リンクにソーシャル メタデータを追加して、共有する URL の外観をカスタマイズするなど、ダイナミック リンク固有のパラメータを追加することもできます。

共有ソリューションを構築する

次に、ユーザーが友だちとリンクを共有できるようにするための共有ソリューションを構築します。ここで構築する内容は、Firebase Invites の以前の機能に代わる共有機能をどのように提供するかによって異なりますが、ほとんどのモバイルアプリでは、プラットフォームにすでに組み込まれている機能を利用できます。

Android の場合、SMS やメールによる共有と、他の一般的なソーシャル ネットワークやメッセージング アプリの両方に対応した簡単なソリューションがあります。それは、一般的なインテントと、Intent.ACTION_SEND として設定されたアクションを組み合わせて使用することです。これにより、お客様のアプリと、ユーザーがインストールした共有インテントを処理できるアプリとの間でデータを共有するための便利な方法が実現します。

この機能を実装するための参考例を紹介します(実際のコードでは定数文字列のリソースを使用することを推奨します)。

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Here's a new lesson for" +
        " learning more Miwok vocabulary:\n\n" + dynamicLink);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Let's Learn Miwok!");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent,
        getResources().getText(R.string.send_to)));

より完全な例と詳細については、他のアプリに簡単なデータを送信するためのガイドをご覧ください。

上記のコード スニペットでは、以下の画面に示すような招待フローが生成されます。

Android での共有

iOS 開発者の場合は、UIActivityViewController を使用して、データの一部として作成されたリンクをカスタム VC に渡すことができます。この方法では、以下の画面のような共有フローが実行されます。

iOS での共有

アプリでダイナミック リンクを受け取る

Firebase Invites のサポートの終了後にアプリでユーザー間共有を提供するための最後の手順は、アプリでダイナミック リンクを受け取ることです。

Android の場合、このプロセスは以前と同様であるため、大きな変更は必要ありません。唯一の違いは、Firebase Invites がなくなると招待 ID もなくなるため、FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(data) による招待 ID 抽出のための呼び出しを削除する必要があることです(アプリでこの呼び出しを行っている場合に限ります)。この部分の詳細については、Android アプリでのダイナミック リンクの受信に関するガイドを参照してください。

iOS では、FIRReceivedInvite オブジェクトを FIRDynamicLink オブジェクトに変更する必要があります。これら 2 つに含まれているデータは似ています。詳細については、iOS アプリでのダイナミック リンクの受信に関するガイドを参照してください。

Unity の開発者の場合は、上記のようにユーザー間の共有機能を移行するための、オープンソースのライブラリや同等のソリューションが数多く存在します。適切なソリューションの実装についてヘルプが必要な場合は、以下に示すサポート リソースをご利用ください。

Firebase Invites は素晴らしいツールであり、構築したことを誇りに思っています。将来を見据えて、ユーザーが友だちにアプリを紹介してそのアプリに招待するための、より柔軟性と制御性に優れた方法を提供できるように、Firebase Dynamic Links をさらに強化していきます。Firebase Dynamic Links とカスタム共有ソリューションの設定について質問がある場合は、StackOverflow またはその他のサポート フォーラムをご利用ください。