You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot中使用Firebase In App Messaging发送通知

Spring Boot 集成 Firebase In-App Messaging 实现方案

核心实现逻辑

你已经完成Firebase Cloud Messaging(FCM)开发的前提下,Firebase In-App Messaging(以下简称FIAM)的服务端触发能力可以直接基于现有Firebase Admin SDK扩展实现,无需额外做授权配置或引入新的核心依赖。FIAM服务端推送本质是通过SDK调用消息发布接口,绑定已注册的FCM令牌、用户群体标签实现定向触达,消息会在用户满足触发条件时在应用内展示。

具体实现步骤

1 依赖确认

确认项目中已经引入Firebase Admin SDK,Maven配置示例如下:

<dependency>
    <groupId>com.google.firebase</groupId>
    <artifactId>firebase-admin</artifactId>
    <version>9.2.0</version>
</dependency>

2 消息发送代码实现(builder模式示例)

直接复用现有项目中已经初始化完成的FirebaseApp实例,调用FIAM相关builder方法构建消息即可,示例代码如下:

import com.google.firebase.inappmessaging.FirebaseInAppMessaging;
import com.google.firebase.inappmessaging.model.Campaign;
import com.google.firebase.inappmessaging.model.CardMessage;
import com.google.firebase.inappmessaging.model.Targeting;
import com.google.firebase.inappmessaging.model.Action;
import com.google.firebase.inappmessaging.model.Content;

public void sendFiamMessage(String targetFcmToken) throws Exception {
    // 构建消息基础内容
    Content messageContent = Content.builder()
        .setTitle("会员专属福利")
        .setBody("本月消费满3笔即可抽取周边礼品")
        .setActionUrl("yourapp://event/member-benefit")
        .build();

    // 构建卡片样式消息配置,也可替换为ModalMessage、BannerMessage对应其他展示样式
    CardMessage cardMessage = CardMessage.builder()
        .setTitle(messageContent.getTitle())
        .setBody(messageContent.getBody())
        .setPrimaryAction(Action.builder()
            .setText("查看详情")
            .setActionUrl(messageContent.getActionUrl())
            .build())
        .build();

    // 配置触达规则,此处指定单个FCM令牌作为触达对象
    Targeting targeting = Targeting.builder()
        .addFcmToken(targetFcmToken)
        // 配置触发时机,可选app_open、自定义事件等
        .setTriggerEvent("app_open")
        .build();

    // 构建推送任务并发送
    Campaign pushCampaign = Campaign.builder()
        .setName("会员福利定向推送")
        .setCardMessage(cardMessage)
        .setTargeting(targeting)
        .build();

    FirebaseInAppMessaging.getInstance().sendCampaign(pushCampaign);
}

扩展适配方案

  • 批量推送场景:可以将Targeting配置中的addFcmToken替换为addUserSegment("自定义用户群ID"),用户群可以提前在Firebase控制台基于用户属性配置完成
  • 自定义触发场景:在setTriggerEvent参数中传入你在客户端埋点的自定义事件ID,即可实现用户完成指定操作后才弹出应用内消息
  • 复杂逻辑场景:如果需要自定义消息过滤、统计逻辑,可以采用Spring Boot + Firebase Cloud Function中转的方案,Spring Boot侧只传递业务参数,由Cloud Function调用FIAM接口完成推送,降低服务端集成复杂度

内容的提问来源于stack exchange,提问作者Yash Palsanawala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 14:45:04