Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

使用自定義共享從 Firebase 邀請遷移到動態鏈接

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

Firebase Invites 提供了一種在您的應用程序中接收Firebase 動態鏈接的機制,以及通過短信或電子郵件共享該鏈接的功能。我們開發 Firebase Invites 是為了幫助您通過口口相傳來增加您的應用用戶,但隨著時間的推移,我們了解到您找到了更好的方法來鼓勵用戶與他們的朋友分享他們最喜歡的應用,這超出了 Firebase Invites 目前的作用。

我們還看到,雖然 Firebase 邀請的使用率有所下降,但你們中的許多人仍在使用 Firebase 動態鏈接作為用戶對用戶共享解決方案的關鍵組成部分。因此,我們正在加強關注並加大努力,使 Firebase 動態鏈接成為在您的應用中構建用戶對用戶共享功能的最佳方式。作為此次轉變的一部分,我們已棄用 Firebase 邀請功能,並將從2020 年 1 月 24 日開始停止支持。

這是什麼意思,對我有何影響?

從 2020 年 1 月 24 日開始,您的用戶將無法再發送或接收 Firebase 邀請,邀請後端服務將在調用發送和接收邀請鏈接時開始返回錯誤響應。當前的 SDK 包括錯誤處理,以幫助確保這些服務器響應的正常故障情況,因此您的用戶將能夠繼續使用您的應用程序而不會崩潰,但我們建議您不再使用 Firebase Invites,並切換到使用 Firebase 的替代解決方案具有自定義共享解決方案的動態鏈接。

這是如何做到的!

首先,創建一個動態鏈接,您的用戶可以與他們的朋友分享。好消息是您可能已經熟悉此步驟,因為它類似於您設置 Firebase 邀請的方式。但您也可以向動態鏈接添加特定參數,例如,如果您的用戶通過社交網絡共享您的應用程序,則向您的鏈接添加社交元數據以自定義共享 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 上分享

在您的應用中接收動態鏈接

最後,在日落之後為您的應用程序提供用戶對用戶共享的最後一步是在您的應用程序中接收動態鏈接。

對於 Android,此過程保持不變,因此您無需在此處進行太多更改。唯一的區別是,如果沒有 Firebase Invites,將不再有邀請 ID,因此您需要通過FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(data)刪除提取邀請 ID 的調用,如果您的應用正在進行該調用.有關這部分的更多詳細信息,請參閱有關在您的 Android 應用程序中接收動態鏈接的指南。

對於 iOS,這需要將FIRReceivedInvite對象更改為FIRDynamicLink對象,這兩個對像都包含相似的數據。有關詳細信息,請參閱有關在您的 iOS 應用程序中接收動態鏈接的指南。

對於 Unity 開發人員,有許多開源庫和與上述相同的解決方案可以遷移您的用戶到用戶共享功能。如果您在提供合適的解決方案方面需要任何幫助,請聯繫下面進一步鏈接的支持資源。

Firebase Invites 是我們引以為豪的出色工具。展望未來,我們很高興能加倍努力使 Firebase 動態鏈接變得更好,這樣您就可以更靈活地控制如何鼓勵用戶邀請其他人使用您的應用。如果您對設置 Firebase 動態鏈接和自定義共享解決方案有任何疑問,請訪問StackOverflow或我們的任何其他支持論壇