簡體   English   中英

如何在Android庫模塊中包含GCM / FCM?

[英]How to include GCM/FCM in an android library module?

無法為Android庫生成google-services json,因為它要求提供應用程序ID。 我知道如何在項目中添加它。

FCM客戶端設置

圖書館沒有應用程序ID。 應用程序ID由庫的使用者提供。 只需包含依賴項即可。 不要將Google Services插件應用於庫。

您的客戶可能會遵循https://firebase.google.com/docs/cloud-messaging/android/client教程。 這意味着您必須創建庫的推送消息處理器,客戶端將工作委托給該處理器。 例:

your.client.app.package.fcm.MyFirebaseMessagingService.kt

class MyFirebaseMessagingService() : FirebaseMessagingService() {
    override fun onMessageReceived(p0: RemoteMessage) {
        super.onMessageReceived(p0)

        // Your client's message handling.
        // ...

        // If not handled by client, delegate to library.
        AwesomeLibrary.processPushMessage(this, p0)
}

your.awesome.library.package.fcm.AwesomeLibraryFcm.kt

object AwesomeLibraryFcm {
    fun processPushMessage(context: Context, message: RemoteMessage) {
        // TODO Your job.
    }
}

如您所見,將Firebase連接到庫完全由庫的使用者處理。 您根本不需要觸摸Firebase。

FCM服務器設置

您需要一個應用程序ID才能設置FCM。 一個應用程序ID只能與一個Firebase項目相關聯,這就是您圖書館的使用者的ID。 死路。

如果您正在運行在線服務,並且需要代表客戶發送推送消息,則需要他們在Google Dev控制台中創建服務器密鑰 (僅限於服務器的IP地址),並將其與Project ID一起上傳到您的服務器。 這些將允許您的服務器發送推送消息。 從本質上講,這是您的客戶允許您代表他們發送推送消息的權限

注意潛在的安全風險和濫用服務。

我將FCM集成到庫項目中,並在新的應用程序項目中使用了該庫。 我從庫中復制了Google服務json文件,並將其粘貼到新應用程序項目的應用程序模塊中。 之后,我修改了這個Google服務json文件。 我將"package_name" "client_info" "package_name"下的"package_name"重命名為應用程序包名稱,並且能夠收到通知。

暫無
暫無

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

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