实现Java Spring Boot FCM推送教程

简介: 本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。

流程图
详细步骤

  1. 创建Spring Boot项目
    首先,你需要创建一个Spring Boot项目,可以使用Maven或Gradle构建工具。
  2. 添加Firebase依赖
    在项目的pom.xml中添加Firebase相关依赖:
    com.google.firebase
    firebase-admin
    7.3.0
  3. 获取Firebase服务账户密钥
    在Firebase控制台中创建一个新的项目,并下载服务账户密钥JSON文件。
  4. 配置application.properties
    在application.properties中添加Firebase服务账户密钥的路径:
    firebase.credential.path=PATH_TO_JSON_FILE
  5. 编写推送服务类
    创建一个推送服务类,其中包括初始化Firebase应用和发送推送消息的方法:
    @Service
    public class FcmService {

    @Value("${firebase.credential.path}")
    private String credentialPath;
    @PostConstruct
    public void initializeApp() throws IOException {

     FileInputStream serviceAccount = new FileInputStream(credentialPath);
     FirebaseOptions options = new FirebaseOptions.Builder()
         .setCredentials(GoogleCredentials.fromStream(serviceAccount))
         .build();
     FirebaseApp.initializeApp(options);
    

    }
    public void sendMessage(String token, String title, String body) {

     Message message = Message.builder()
         .setToken(token)
         .setNotification(Notification.builder()
             .setTitle(title)
             .setBody(body)
             .build())
         .build();
     String response = FirebaseMessaging.getInstance().send(message);
     System.out.println("Successfully sent message: " + response);
    

    }
    }


  1. 发送推送消息
    在需要发送推送消息的地方调用sendMessage方法:
    @Autowired
    private FcmService fcmService;
    public void sendPushNotification() {
    String token = "DEVICE_TOKEN";
    String title = "Title";
    String body = "Body";
    fcmService.sendMessage(token, title, body);
    }

序列图
通过以上步骤和示例代码,你可以成功实现Java Spring Boot FCM推送功能。如果有任何疑问,欢迎随时询问。祝你编码顺利!

相关文章
|
2天前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
13 1
Spring 框架:Java 开发者的春天
|
2天前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
2天前
|
JSON Java 开发工具
Java服务端集成Google FCM推送的注意事项和实际经验
本文分享了作者在公司APP海外发布过程中,选择Google FCM进行消息推送的集成经验。文章详细解析了Java集成FCM推送的多种实现方式,包括HTTP请求和SDK集成,并指出了通知栏消息和透传消息的区别与应用场景。同时,作者还探讨了Firebase项目的创建、配置和服务端集成的注意事项,帮助读者解决文档混乱和选择困难的问题。
8 1
|
6天前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
21 1
|
9天前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
56 1
|
10天前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
|
10天前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
2天前
|
Java API 调度
Java中的多线程编程:理解与实践
本文旨在为读者提供对Java多线程编程的深入理解,包括其基本概念、实现方式以及常见问题的解决方案。通过阅读本文,读者将能够掌握Java多线程编程的核心知识,提高自己在并发编程方面的技能。
|
2天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
8 3
|
2天前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
8 2