繁体   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