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

使用Firestore collection的add方法时偶现‘Document already exists’错误求助

Firestore already-exists 错误排查分析

以下是可能导致该错误的核心原因:

  • 客户端重复提交/重试逻辑异常:部分不受控的设备或浏览器,可能因网络波动导致首次请求未收到响应,触发了自定义或内置的请求重试机制。实际上Firestore已经成功创建文档,重试时便会抛出already-exists错误。尤其要注意那些未按规范处理请求回调的客户端逻辑。

  • 离线持久化与缓存冲突:如果客户端启用了Firestore离线持久化,设备离线时提交的add操作,在恢复在线同步后,可能因本地缓存状态与云端不一致,或之前的离线操作已完成同步但客户端重复触发,导致文档已存在的冲突。此外,未更新的旧版Firestore SDK可能存在离线同步的已知bug,引发此类问题。

  • add方法被异常篡改或替换:尽管你代码中使用的是自动生成ID的add方法,但不排除部分客户端被浏览器插件、恶意脚本篡改,或本地代码存在逻辑错误,将add替换为set或doc(id).set()这类指定ID的写入操作。当指定的ID已存在时,就会触发该错误。

  • 后端幂等性处理偶发异常:极端情况下,Firestore后端对add操作的幂等性处理可能出现异常,导致单次请求被重复处理并生成重复文档ID,但这种情况概率极低,优先排查客户端层面问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:30:45