关于 firebase-in-app-messaging
面向 Flutter 开发者的 Firebase In-App Messaging 实现指南,涵盖程序化触发、消息屏蔽、数据收集授权、设备测试与活动配置。
主要功能
- 01程序化触发与屏蔽消息
- 02授权式数据收集控制
- 03按设备测试活动
- 04活动定向与排期
- 05消息类型与 A/B 测试
适用场景
- 01在应用事件后触发消息
- 02支付流程中屏蔽消息
- 03数据收集前征求用户授权
- 04在指定设备测试活动展示
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ evanca/ flutter-ai-rules --skill firebase-in-app-messaging安装后在 Claude Code 中输入/firebase-in-app-messaging确认已加载。
详细介绍
Firebase In-App Messaging 技能
本技能介绍如何在 Flutter 应用中正确实现 Firebase In-App Messaging,涵盖设置、以编程方式触发消息、隐私控制、测试工作流和活动管理。
适用场景
在以下情况下使用本技能:
- 在 Flutter 项目中设置 Firebase In-App Messaging。
- 以编程方式触发或屏蔽应用内消息。
- 实现数据收集选择加入功能,以满足 GDPR 或用户隐私合规要求。
- 在发布前使用特定设备测试活动。
- 配置消息类型、定位规则和 A/B 测试。
1. 设置和配置
flutter pub add firebase_in_app_messaging
import 'package:firebase_in_app_messaging/firebase_in_app_messaging.dart';
- 使用任何 In-App Messaging 功能之前,请先初始化 Firebase。
- 默认情况下,In-App Messaging 每天从服务器获取一次消息,以节省电量。
设置清单
- 确认在访问 In-App Messaging 之前,
Firebase.initializeApp()已完成。 - 在 Firebase 控制台中创建测试活动,以验证集成情况。
- 找到用于特定设备测试的 Installation ID(参见“测试”部分)。
2. 消息触发和显示
使用 Google Analytics 事件触发应用内消息,无需编写额外代码。如需以编程方式触发:
// Trigger a message tied to a custom event
await FirebaseInAppMessaging.instance.triggerEvent("purchase_complete");
在关键流程期间屏蔽消息
class PaymentScreen extends StatefulWidget {
@override
State<PaymentScreen> createState() => _PaymentScreenState();
}
class _PaymentScreenState extends State<PaymentScreen> {
@override
void initState() {
super.initState();
// Suppress messages during payment
FirebaseInAppMessaging.instance.setMessagesSuppressed(true);
}
@override
void dispose() {
// Re-enable messages when leaving payment flow
FirebaseInAppMessaging.instance.setMessagesSuppressed(false);
super.dispose();
}
}
- 应用重启时,屏蔽功能会自动关闭。
- 被屏蔽的消息会被忽略——取消屏蔽后,必须再次满足其触发条件。
- 常见的屏蔽场景:付款处理、引导向导、表单提交页面。
3. 用户隐私和选择加入数据收集
默认情况下,In-App Messaging 会自动向所有目标用户投放消息。
停用自动收集 — iOS(Info.plist):
<key>FirebaseInAppMessagingAutomaticDataCollectionEnabled</key>
<false/>
停用自动收集 — Android(AndroidManifest.xml):
<meta-data
android:name="firebase_inapp_messaging_auto_data_collection_enabled"
android:value="false" />
在用户运行时选择加入后启用:
// Call after user consents to data collection
Future<void> enableMessaging() async {
await FirebaseInAppMessaging.instance.setAutomaticDataCollectionEnabled(true);
}
// Call if user revokes consent
Future<void> disableMessaging() async {
await FirebaseInAppMessaging.instance.setAutomaticDataCollectionEnabled(false);
}
- 手动设置的偏好会在应用重启后保留,并覆盖配置文件中的值。
- 为满足 GDPR 合规要求,默认停用自动收集,仅在用户明确同意后启用。
4. 测试和调试
查找 Installation ID
- **Android:**按
FIAM.Headless筛选 logcat — 查找Starting InAppMessaging runtime with Installation ID YOUR_INSTALLATION_ID。 - **iOS:**在 Xcode scheme 设置中添加
-FIRDebugEnabled作为运行时参数。在控制台中查找[Firebase/InAppMessaging][I-IAM180017]。
测试活动
- 在 Firebase 控制台中打开活动,然后选择在您的设备上测试。
- 输入上一步中的 Installation ID。
- 测试消息会在应用下次启动或进入前台时显示。
- 始终在实际设备上测试,以确保正确呈现并正常运行。
- 测试每种消息类型(模态、横幅、卡片、纯图片),以验证其在不同屏幕尺寸上的布局。
5. 活动管理
- 在 Firebase 控制台的消息传递 > 应用内消息下创建活动。
- 消息类型:模态、横幅、卡片或纯图片。
活动配置工作流
- 设计 — 选择消息类型并自定义外观(标题、正文、图片、按钮)。
- 定位 — 按应用版本、语言、用户细分群体或基于 Analytics 的条件定义受众。
- 安排 — 设置开始/结束日期和频次上限(一次、每个会话一次等)。
- 触发 — 选择用于显示消息的 Analytics 事件(例如
app_open、purchase_complete)。 - 测试 — 发布前使用设备测试。
- 发布 — 启动活动并监控效果。
- 使用自定义元数据(键值对)传递额外信息,以便在用户与消息互动时获取。
- 使用A/B 测试优化消息内容、时机和转化率。
- 通过 Firebase 控制台分析监控活动效果(展示次数、点击次数、转化次数)。
参考资料
评论
支持 Markdown