关于 firebase-analytics
面向 Flutter 开发者的 Firebase Analytics 实施技能,涵盖配置、事件与用户属性追踪、页面浏览记录及数据收集规范。
主要功能
- 01Firebase Analytics 配置
- 02预定义与自定义事件记录
- 03用户属性与默认参数
- 04页面浏览追踪
- 05通过 DebugView 验证
适用场景
- 01为 Flutter 应用添加分析
- 02记录自定义事件和用户属性
- 03通过 GoRouter 或 Navigator 追踪导航
- 04开发期间检查接收的事件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ evanca/ flutter-ai-rules --skill firebase-analytics安装后在 Claude Code 中输入/firebase-analytics确认已加载。
详细介绍
Firebase Analytics 技能
此技能介绍如何在 Flutter 应用中正确实现 Firebase Analytics,涵盖设置、事件记录、用户属性和数据收集最佳实践。
适用场景
在以下情况下使用此技能:
- 在 Flutter 项目中设置和配置 Firebase Analytics。
- 记录预定义或自定义分析事件。
- 设置用户属性或默认事件参数。
- 使用 GoRouter 或 Navigator 观察器实现屏幕浏览跟踪。
- 构建转化漏斗或跟踪用户流程。
1. 设置与配置
flutter pub add firebase_analytics
flutter run
import 'package:firebase_analytics/firebase_analytics.dart';
// After Firebase.initializeApp():
FirebaseAnalytics analytics = FirebaseAnalytics.instance;
- 使用任何 Firebase Analytics 功能前,先初始化 Firebase。
- Analytics 会自动记录部分事件和用户属性,无需为此编写额外代码。
- 在 iOS 上,如果应用不使用 IDFA(广告标识符),请使用不含 IDFA 的 Analytics 依赖项(Swift Package Manager 下的
FirebaseAnalyticsCore,或 CocoaPods 下的FirebaseAnalytics/Core),而不是默认的FirebaseAnalytics依赖项,以避免 App Store 审核时被询问广告标识符相关问题:- **Swift Package Manager:**构建时设置
FIREBASE_ANALYTICS_WITHOUT_ADID=true(FIREBASE_ANALYTICS_WITHOUT_ADID=true flutter build ios)。
- **Swift Package Manager:**构建时设置
添加 Navigator 观察器以自动跟踪屏幕
MaterialApp(
navigatorObservers: [
FirebaseAnalyticsObserver(analytics: FirebaseAnalytics.instance),
],
);
对于 GoRouter,请在路由发生变化时手动记录屏幕浏览:
GoRouter(
observers: [FirebaseAnalyticsObserver(analytics: FirebaseAnalytics.instance)],
);
验证清单
- 确认在访问
FirebaseAnalytics.instance前已完成Firebase.initializeApp()。 - 运行应用,并在 Firebase DebugView 控制台中检查收到的事件。
- 确认自动事件(
first_open、session_start)无需额外代码即可显示。
2. 事件记录
尽可能使用预定义事件方法,以便在报告中获得最详尽的信息,并使用未来的 Google Analytics 功能:
await FirebaseAnalytics.instance.logSelectContent(
contentType: "image",
itemId: itemId,
);
使用通用的 logEvent() 方法记录预定义和自定义事件:
await FirebaseAnalytics.instance.logEvent(
name: "select_content",
parameters: {
"content_type": "image",
"item_id": itemId,
},
);
自定义事件示例 — 电商添加到购物车
Future<void> logAddToCart(String productId, String productName, double price) async {
await FirebaseAnalytics.instance.logEvent(
name: 'add_to_cart',
parameters: {
'product_id': productId,
'product_name': productName,
'price': price,
'currency': 'USD',
},
);
}
- 事件名称区分大小写——仅大小写不同的名称会被视为两个不同的事件。
- 最多可使用 500 种不同的事件类型,但事件总量不受限制。
- 事件名称必须以字母开头,只能包含字母数字字符和下划线,且长度不得超过 40 个字符。
3. 参数与属性
- 参数名称:最多 40 个字符,必须以字母开头,且只能包含字母数字字符和下划线。
- 字符串参数值:最多 100 个字符。
- 前缀
firebase_、google_和ga_为保留前缀——请勿用于参数名称。 - 每个事件最多可有 25 个自定义参数。
- 在 Analytics 控制台中注册自定义参数,才能在报告中将其用作维度或指标。
为所有后续事件设置默认参数(Web 不支持):
await FirebaseAnalytics.instance.setDefaultEventParameters({
'app_version': '1.2.3',
'environment': 'production',
});
将默认参数设为 null,即可清除该参数。
4. 用户属性
await FirebaseAnalytics.instance.setUserProperty(
name: 'favorite_food',
value: favoriteFood,
);
设置用户 ID,以便关联不同设备上的事件:
await FirebaseAnalytics.instance.setUserId(id: 'user_12345');
- 使用用户属性前,请先在 Analytics 控制台中为其创建自定义定义。
- 每个项目最多可有 25 个自定义用户属性。
- 使用用户属性进行受众细分、报告筛选或 A/B 测试定位。
5. 最佳实践
- 收集用户数据前,请求必要的权限,尤其是在隐私控制严格的平台上。
- 切勿在事件或用户属性中记录敏感信息或个人身份信息。
- 使用一致的命名约定(snake_case)为自定义事件和参数命名。
- 将相关事件分组,以跟踪用户流程和转化漏斗。
- 开发期间,在 Firebase 控制台中使用 DebugView — 在实体设备上通过以下方式启用:
- Android:
adb shell setprop debug.firebase.analytics.app <package_name> - iOS: 在 Xcode 的方案参数中添加
-FIRDebugEnabled。
- Android:
- 部署到生产环境之前,测试分析功能的实现,确认事件会显示在 DebugView 中。
参考资料
评论
支持 Markdown