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

如何在Flutter中基于Firestore活跃用户数据创建同职位用户查询?

解决方法

你需要先获取当前登录用户的职位信息,再将其传入查询条件中,具体实现分两种场景:

场景1:已缓存当前用户的职位信息

如果你已经在本地存储(比如SharedPreferences、全局状态管理)中保存了当前登录用户的job值,直接调用该值即可:

// 假设你已获取到当前用户的职位并存在变量中
String activeUserJob = "你的缓存职位值";

final Stream<QuerySnapshot> _usersStream = FirebaseFirestore.instance
    .collection('users')
    .where("job", isEqualTo: activeUserJob)
    .snapshots();

场景2:从Firestore实时获取当前用户职位

如果没有缓存,需要先通过Firebase Auth拿到当前用户UID,再查询该用户的job字段:

// 先获取当前登录用户的UID
String? currentUserId = FirebaseAuth.instance.currentUser?.uid;

if (currentUserId != null) {
  // 查询当前用户的职位
  DocumentSnapshot userDoc = await FirebaseFirestore.instance
      .collection('users')
      .doc(currentUserId)
      .get();
  
  String activeUserJob = userDoc.get('job');
  
  // 创建同职位用户的查询流
  final Stream<QuerySnapshot> _usersStream = FirebaseFirestore.instance
      .collection('users')
      .where("job", isEqualTo: activeUserJob)
      .snapshots();
}

注意事项

  • 确保FirebaseAuth.instance.currentUser不为空,使用前务必做非空判断,避免空指针错误。
  • 若需要实时同步当前用户职位的变化,可以监听当前用户文档的快照,再动态更新同职位用户的查询流。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:51:43