Firebase Firestore子集合文档超1MB限制是否影响父文档?
Firestore单文档1MB限制的作用范围
Firestore 规定的单文档最大1MB存储限制仅对单个文档本身生效,不会向上影响父级文档、上层集合,也不会影响同路径下的其他文档。
针对你给出的存储结构 registered_user (Doc) > mis_data (Sub_col) > last_visits (Doc),具体规则如下:
- 文档大小的计算范围只包含该文档自身存储的字段值、内置元数据,完全不统计其下属子集合、子集合内所有文档的体积
- 就算
last_visits文档存储的数据量超过1MB触发写入报错,上层的registered_user父文档的读写、存储都不会受到任何影响 - 同理,父文档
registered_user的体积就算接近1MB上限,也不会占用子集合下文档的存储配额,二者的配额计算完全独立 - 集合本身不存在存储大小限制,限制只落在集合内的每一个独立文档上
补充说明:子集合只是在路径层级上归属父文档,在底层存储逻辑上和父文档是完全隔离的,不存在存储空间共享、配额互相挤占的情况。你在校验单个文档是否超限时,只需要统计该文档直接持有的字段内容即可,不需要累加下属子集合里的文档体积。
如果你的last_visits存储的访问记录会持续增长、大概率突破1MB上限,建议不要把所有访问记录存在单个文档里,可以按时间维度拆分多个文档存入mis_data子集合,比如按月份拆分为last_visits_202406、last_visits_202407,从设计上避免单文档超限问题。
内容的提问来源于stack exchange,提问作者Humayun MHA
相关产品推荐
相关产品推荐

