如何在Flutter中读取Firebase Authentication的日活跃用户数据
在Flutter应用中展示Firebase日活跃用户数据的方案
方案1:借助Firebase Analytics + BigQuery + Cloud Functions
- 给Firebase项目关联BigQuery,开启Analytics数据的每日自动导出
- 在Flutter应用中,每次用户启动APP时,发送自定义事件
user_active(可附带用户ID):FirebaseAnalytics.instance.logEvent( name: 'user_active', parameters: {'user_id': FirebaseAuth.instance.currentUser?.uid}, ); - 在BigQuery中编写SQL查询,统计当日触发
user_active事件的唯一用户数:SELECT COUNT(DISTINCT user_id) AS daily_active_users FROM `your-project-id.analytics_xxxxxx.events_*` WHERE event_name = 'user_active' AND _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', CURRENT_DATE()) - 创建Cloud Functions定时任务(每日执行),运行上述查询并将结果写入Firestore的
metrics/daily_active_users文档 - 在Flutter应用中读取该Firestore文档,展示日活数据
方案2:手动维护用户活跃状态(最直接)
- 在Firestore的用户集合中新增
last_active字段(时间戳类型) - 在Flutter应用的初始化入口(如首页
initState)更新当前用户的活跃时间:await FirebaseFirestore.instance .collection('users') .doc(FirebaseAuth.instance.currentUser?.uid) .update({'last_active': FieldValue.serverTimestamp()}); - 查询过去24小时内活跃的用户数:
final twentyFourHoursAgo = DateTime.now().subtract(Duration(hours: 24)); final snapshot = await FirebaseFirestore.instance .collection('users') .where('last_active', isGreaterThan: twentyFourHoursAgo) .get(); final dailyActiveCount = snapshot.size; - 可选:用Cloud Functions定时任务每日预计算日活数据,存入
metrics集合,避免APP端频繁全表查询
方案3:基于Firebase Authentication登录日志统计
- 创建Cloud Functions的登录触发器,记录用户登录时间到Firestore的
user_login_logs集合:exports.trackUserLogin = functions.auth.user().onSignIn((user) => { return admin.firestore().collection('user_login_logs').add({ user_id: user.uid, login_time: admin.firestore.FieldValue.serverTimestamp() }); }); - 在Flutter端查询过去24小时内的登录记录,去重后得到日活数:
final twentyFourHoursAgo = DateTime.now().subtract(Duration(hours: 24)); final snapshot = await FirebaseFirestore.instance .collection('user_login_logs') .where('login_time', isGreaterThan: twentyFourHoursAgo) .get(); final uniqueUsers = snapshot.docs.map((doc) => doc['user_id']).toSet(); final dailyActiveCount = uniqueUsers.size; - 同样可通过定时任务预计算数据,提升APP端性能
内容的提问来源于stack exchange,提问作者ginaa
相关产品推荐
相关产品推荐

