如何在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
相关产品推荐
相关产品推荐

