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

如何通过集合查询更新未知ID的Firebase Firestore文档指定字段

Firestore 不支持直接对查询结果链式调用update方法,你需要先执行查询拿到匹配的文档实例,再调用文档对应的更新接口完成操作。

你可以参考以下代码实现需求:

val db = FirebaseFirestore.getInstance()
db.collection(Constants.REDEEM_CODE)
    .whereEqualTo("key", key)
    .get()
    .addOnSuccessListener { querySnapshot ->
        // key字段唯一,仅需取首个匹配的文档
        if (!querySnapshot.isEmpty) {
            val targetDocRef = querySnapshot.documents.first().reference
            targetDocRef.update("x", 0)
                .addOnSuccessListener {
                    // 此处添加更新成功的处理逻辑
                }
                .addOnFailureListener { e ->
                    // 此处添加更新失败的异常处理逻辑
                }
        } else {
            // 此处添加无匹配key文档的处理逻辑
        }
    }
    .addOnFailureListener { e ->
        // 此处添加查询请求失败的异常处理逻辑
    }

补充说明

  • 如果你需要保证更新操作的原子性,避免并发修改冲突,可以将更新逻辑替换为Firestore事务实现。
  • 如果后续业务逻辑变更可能出现重复的key值,需要自行添加多匹配文档的判断处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:09:03