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

Python向Firestore提交含“/”的文档报错的解决方法咨询

问题原因与解决方法

为什么会报错?

Firestore 把文档路径里的斜杠/当成了集合和文档的层级分隔符。比如你传入na/me作为文档名,会被自动解析成[集合名, "na", "me"]这样的路径片段,总共有3个元素(奇数),而Firestore要求路径元素必须是偶数(集合→文档→集合→文档...交替,数量必然是偶数),所以触发ValueError。

两种解决思路

  • 替换/转义斜杠:如果斜杠只是文档名的一部分,不需要层级语义,直接把斜杠换成其他合法字符,读写时统一处理:
# 写入时替换斜杠
doc_name = "na/me"
safe_doc_name = doc_name.replace("/", "__slash__")  # 用自定义标识替换
db.collection("your_col").document(safe_doc_name).set({"content": "test"})

# 读取时还原
# 查询到文档后,把标识换回斜杠
original_name = safe_doc_name.replace("__slash__", "/")
  • 调整路径层级:如果斜杠是用来表示层级关系(比如想把na作为父文档,me作为子文档),就要按照Firestore的路径规则构建正确的层级:
# 正确的层级路径:集合→父文档→子集合→子文档(4个元素,偶数)
db.collection("parent_col").document("na").collection("child_col").document("me").set({"content": "test"})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:12:21