前言最近在开发一款国际版的APP,项目中需要支持客户端消息推送,自己实现肯定是不可能的,需要寻找第三方的SDK 。在做技术调研的时候决定使用google的FCM框架来实现,有个缺点就是大陆是接收不到的(fq可以) 。那么本章就给大家分享一下如何基于Spring Boot集成Firebase实现FCM消息推送功能 。
必要条件1、大陆开发者要准备好vpn(你懂的) 。
2、申请Google Firebase账号 。
3、获取Firebase秘钥 。
4、有效的客户端token令牌(app客户端开发者提供) 。
开发第一步:申请开发者账号
地址:
https://console.firebase.google.com/
第二步:添加一个项目
如下图所示,添加一个项目:

文章插图
添加项目

文章插图
添加步骤

文章插图
TPS:注意必须与android项目本地包名一致就是manifest中package的路径一样 。
第三步:下载google-services.json文件
点击左上角——设置(图标)——项目设置,点击google-services.json下载,如下图所示:

文章插图
下载google-services.json文件
将下载好的文件放到Spring Boot项目的resources目录下,例如:

文章插图
存放目录
第四步:集成Firebasepom引用firebase,要fq才能下载,如果没有条件就需要手动导入下载好的jar包 。
import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;import java.util.List;/** * * 功能描述: FCM推送消息请求实体 * @auther: IT实战联盟Line * @date: 2019年11月25日09:54:51 */@NoArgsConstructor@Data@ApiModel(value = "https://www.baikexueshe.com/s/FCM推送消息请求实体")public class FCMSendMessageReqDTO implements Serializable { private static final long serialVersionUID = 8317264020451674205L; @ApiModelProperty(value = "https://www.baikexueshe.com/s/消息标题" , required = true) private String title; @ApiModelProperty(value = "https://www.baikexueshe.com/s/消息内容" , required = true) private String body; @ApiModelProperty(value = "https://www.baikexueshe.com/s/用户token集合" , required = true) private String tokens; @ApiModelProperty(value = "https://www.baikexueshe.com/s/主题" , required = false) private String topic;}第六步:编写FCM推送消息工具类该工具类支持单个和批量推送,这里批量采用的是给主题推 。
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.List;import java.util.Map;import com.google.auth.oauth2.GoogleCredentials;import java.util.concurrent.ConcurrentHashMap;import com.google.firebase.FirebaseApp;import com.google.firebase.FirebaseOptions;import com.google.firebase.messaging.AndroidConfig;import com.google.firebase.messaging.AndroidConfig.Builder;import com.google.firebase.messaging.AndroidNotification;import com.google.firebase.messaging.FirebaseMessaging;import com.google.firebase.messaging.FirebaseMessagingException;import com.google.firebase.messaging.Message;import com.google.firebase.messaging.Notification;import com.google.firebase.messaging.TopicManagementResponse;/** * @Auther: IT实战联盟Line * @Date: 2019-11-23 14:02 * @Description: Google_FireBase推送工具类 */public class FireBaseUtil { //存放多个实例的Map private static Map firebaseAppMap = new ConcurrentHashMap
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
