簡體   English   中英

在同一個 Android 應用程序中使用多個 Firebase 項目的 Firebase 雲消息傳遞的當前最佳實踐是什么?

[英]What is the current best practice for using Firebase Cloud Messaging with multiple Firebase projects in the same Android app?

我正在開發一個 Android SDK,它使用 Firebase Cloud Messaging 從我的后端接收推送通知。 無論主機應用程序是否也在使用 Firebase,SDK 應該都能正常工作。 FCM 文檔概述了一種允許多個發件人向同一個應用程序發送推送通知的方法,但措辭含糊不清,似乎沒有任何代碼示例說明如何執行此操作。

在四處挖掘之后,看起來曾經(大約 2018 年)通過調用FirebaseInstanceId.getInstance().getToken("senderId1,senderId2", FirebaseMessaging.INSTANCE_ID_SCOPE)來完成此任務,現在已棄用。

FirebaseMessaging class 的源代碼中,有一個包私有初始化程序接受FirebaseApp object。 這看起來應該是為輔助 Firebase 應用程序生成 FCM 注冊令牌的正確方法,實際上,如果我使用反射來訪問此初始化程序方法並使用FirebaseMessaging.getInstance(**secondaryApp**).getToken().addOnCompleteListener(...)我能夠成功發送推送通知,但是由於顯而易見的原因,這是一個低於標准的解決方案。

在同一個應用程序中將 FCM 與多個 Firebase 項目一起使用的當前推薦方法是什么?

FirebaseMessaging 沒有公開getInstance(app)的公共方法這一事實表明,FCM 不支持使用多個項目進行初始化。 您會注意到FirebaseAnalyticsFirebaseCrashlyticsFirebaseInAppMessaging也是如此。 這些產品都依賴於 Android singleton 服務,這些服務必須在應用清單中注冊,在發布前無法更改。 這就是為什么它們只支持單個(默認) FirebaseApp實例。

您可以初始化任意數量的 FirebaseApp 實例,為您要使用的每個項目創建一個實例,但這些特定產品只能與默認應用一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM