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

Firestore查询:能否在.where()中使用字段当前值计算?

Firestore查询中能否直接用字段当前值+数值作为筛选条件?

不行,Firestore的where查询不支持直接引用文档自身的字段值进行计算,你没法在同一条查询语句里实现isEqualTo: 字段当前值 + 50这类逻辑。

原因说明

Firestore的查询条件是基于你传入的固定值进行匹配,或者使用它提供的预定义比较操作符(如greaterThan、lessThan),但不允许在查询条件中引用目标文档的字段值做运算。

对应场景的解决方案

  1. 如果是要筛选满足「count + 50 = 某个固定值」的文档
    你可以反向推导计算出需要匹配的count值,再传入查询条件:

    // 假设你要找count +50等于200的文档
    FirebaseFirestore.instance.collection('users')
        .where('count', isEqualTo: 200 - 50) // 即匹配count=150的文档
        .get();
    
  2. 如果是要更新文档时给count字段增加50
    不要用查询+更新的方式,直接使用Firestore的原子增量操作,它会在服务器端安全地对字段当前值进行累加:

    FirebaseFirestore.instance.collection('users').doc('目标文档ID')
        .update({
          'count': FieldValue.increment(50)
        });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:43:18