美文网首页
自制Firebase Cloud Message测试工具

自制Firebase Cloud Message测试工具

作者: aloyise | 来源:发表于2020-04-20 17:00 被阅读0次

    因为需要 我们的app需要集成FCM,fcm的实现包括app端跟服务器端,app端的集成是很快的,有时候比服务器端的开发快很多,我们有时候没法等服务器端做完了再测试,主要是这样的等待很漫长,而且有时候服务器端的开发不一定完全是按照我们的要求来做,还需要反复的沟通修改,因此,这时候如果有一个工具可以模拟服务器端的推送,那么会在很大程度上对我们app的开发提供帮助,而且使用工具实现推送也不会产生过多的数据。

    那么如何来做这样的工具呢,首先我们可以分下fcm 的 app的sdk的基本原理,它的底层原理其实很简单,最后的实现就是向Firebase服务器端发出了一条消息请求,请求firebase服务器向指定的token发送一条推送。这样分析下来,其实好像就跟我们要实现app的某一个网络请求的功能的实现是一模一样的,我们需要的是知道这个api的url以及需要的参数,通过简单的封装就能实现了。

    这个功能的url是什么呢,是这个https://fcm.googleapis.com/fcm/send

    那么首先我们要知道使用这个api需要什么权限,其实也很简单,如果我们的app需要集成fcm,那么毕竟在firebase控制台需要添加此服务,从而我们在控制台可以找到该app用于fcm的一个server-key,在控制台的setting里面可以找到。将这个server-key添加到我们的请求头里面即可。

    那么接下来就是参数的问题了,我前面有篇文章介绍过fcm消息的种类和其json结构

    {

    "data": {},

    "notification": {

    "body": "test",

    "click_action": "NOTIFICATION_PHOTO_LIKED",

    "title": "test"

    },

    "to": "cat-ahUETs6lvobLKqI7xU:APA91bGNgV5kQfuE3b4KqOmD-Q0aN40UC-dkSNqR5nYfVI-knxfB4WS06CDn4UXrtsR5PqqknNk2RPZkSk3vLR2f_1pDvMoRwgpvJsIykFlDmIwVoYTSTD0kDE7ohk95u2n4O"

    }

    这里我再次给出来,使用我们的api 将符合此结构的类post出去就可以了。是不是很简单了。

    我使用的retrofit来实现的,这里给出一部分代码

    interface FcmApi {

    @POST("fcm/send")

    fun sendNotification(@Body sendNotification: SendNotification):Observable

    @POST("fcm/send")

    fun sendData(@Body sendData: SendData):Observable

    }

    其中SendNotification

    data class SendNotification(var to:String,var notification: Notification?,var data:Map?)

    这里面的to就是你设备的token,这里需要你从你的实现了fcm集成的app里面获取到token添加到你这个测试工具的代码中,当然也可以作为参数添加进去。

    其中Notification

    data class Notification(var title:String,var body:String,var click_action:String)

    知道了原理实现起来就非常简单了

    相关文章

      网友评论

          本文标题:自制Firebase Cloud Message测试工具

          本文链接:https://www.haomeiwen.com/subject/mjwdihtx.html