使用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
相关产品推荐
相关产品推荐

