利用自定义分享方案,从 Firebase 邀请迁移到 Dynamic Links

Firebase 邀请既提供了一种在您的应用中接收 Firebase Dynamic Links 的机制,又提供了一种通过短信或电子邮件分享该链接的功能。我们开发 Firebase 邀请的目的是帮助开发者通过口口相传来扩大其应用的用户群,但随着时间的推移,我们发现开发者找到了鼓励用户与其朋友分享自己最喜爱应用的更好方式,而不仅仅是 Firebase 邀请现在所具有的功能。

我们还发现,虽然 Firebase 邀请的使用减少了,但许多人仍将 Firebase Dynamic Links 作为用户间分享解决方案的关键组成部分。因此,我们正在集中精力、加大力度,使 Firebase Dynamic Links 成为在您的应用中构建用户间分享功能的理想方式。作为此次转变的一部分,我们已弃用 Firebase 邀请功能,并已从 2020 年 1月 24 日起停止支持该功能。

这意味着什么?对我有何影响?

自 2020 年 1 月 24 日起,您的用户已无法再发送或接收 Firebase 邀请,而且 Firebase 邀请后端服务会在您进行发送和接收邀请链接的调用时开始返回错误响应。当前的 SDK 已具备错误处理功能,可帮助确保正常处理这些服务器响应,因此您的用户将能够继续使用您的应用而不会遭遇崩溃,但我们建议您不要再使用 Firebase 邀请,而是改用替代方案:使用 Firebase Dynamic Links 构建自定义分享解决方案。

下面介绍如何实现这一目标!

首先,创建动态链接,让用户可以与其朋友分享。庆幸的是,您可能已经熟悉此步骤,因为它与您设置 Firebase 邀请的方式类似。不过,如果您的用户通过社交网络分享您的应用,那么您还可以向动态链接添加特定参数(例如,向您的链接添加社交元数据),以自定义所分享网址的显示效果。

构建分享解决方案

接下来,您就可以为用户构建分享解决方案,使用户能够与其朋友分享该链接。您希望在这一步构建什么样的分享解决方案,取决于您要以怎样的方式提供分享功能(用于取代 Firebase 邀请中的原有功能);但对于大多数移动应用,您可以利用平台中内置的功能。

对于 Android,有一种简单的解决方案可同时囊括短信、电子邮件以及其他常用的社交网络和聊天应用等分享途径,那就是使用一个通用 intent,并将其操作设置为 Intent.ACTION_SEND。这样就可以方便地将您应用中的数据分享给用户所安装的可以处理分享 intent 的任何应用。

与下例类似的代码可以用于这个场景(建议您在自己的代码中使用常量字符串资源):

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 邀请功能停用后在您的应用中提供用户间分享功能,最后一步是在您的应用中接收动态链接。

对于 Android,此过程保持不变,因此您在这一步无需进行大的更改。唯一的区别是,如果不使用 Firebase 邀请,将不再有邀请 ID,因此如果您的应用目前通过调用 FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(data) 来提取邀请 ID,您需要移除该调用。如需详细了解这一点,请参阅在 Android 应用中接收 Dynamic Links 指南。

对于 iOS,您需要从 FIRReceivedInvite 对象更改为 FIRDynamicLink 对象,这两个对象包含类似的数据。如需了解详情,请参阅在 iOS 应用中接收 Dynamic Links 指南。

Unity 开发者可以使用如上所述的许多开源库和等效解决方案来迁移用户间分享功能。如果在提供合适的解决方案方面需要帮助,请访问下方链接的支持资源。

Firebase 邀请过去一直是我们引以为傲的优秀工具。 展望未来,我们将加倍努力使 Firebase Dynamic Links 变得更好,这样您就可以更加灵活、有效地鼓励用户邀请其他人使用您的应用。如果您对设置 Firebase Dynamic Links 和自定义分享解决方案有任何疑问,请访问 StackOverflow 或我们的任何其他支持论坛