Firestore跨项目迁移后源端与目标端存储占用大小不一致问题咨询
Firestore跨项目迁移后存储占用差异常见原因
- 存储统计延迟:Firestore的*Storage(current)*用量指标并非实时更新,新写入数据的占用量最长可能需要48小时才会同步到统计面板,刚完成迁移时查看的目标端存储用量大概率低于实际存储值,可等待2天后再次核对指标。
- 源端已删除数据的残留占用:Firestore底层采用日志合并树结构存储数据,删除的文档不会立即释放磁盘空间,需要等待后台的压缩合并任务执行后才会回收对应容量。这部分已删除未清理的容量会被计入源端存储统计,但迁移时只会导出当前有效的存活数据,不会同步残留占用,是两端用量差异的常见原因。
- 迁移规则导致数据漏迁:如果迁移时配置了集合过滤、时间范围过滤等导出规则,仅匹配规则的数据会被同步到目标端,未匹配的数据集会被遗漏。可先核对两端的集合总数、单个集合的文档计数,确认是否存在漏迁情况。
- 嵌套子集合遗漏迁移:官方迁移工具默认仅导出根级集合,不会自动包含根文档下的嵌套子集合,需要在导出时手动指定所有需要迁移的子集合路径。如果漏填了子集合配置,这部分数据不会同步到目标端,会带来明显的存储用量差。
- 附属资源占用差异:源端项目长期运行积累的大量索引元数据、文档操作日志、历史版本残留等额外占用,不会随用户数据迁移同步到新项目,也会带来两端存储占用的差值。
- TTL待清理数据差异:如果源端配置了TTL自动删除规则,大量已触发删除条件但还未被后台清理的文档,仍然会被计入源端存储统计,迁移时如果这部分数据还未被清理就会被同步到目标端,如果迁移后目标端未开启对应TTL规则,也可能在后续出现用量反转的情况。
内容的提问来源于stack exchange,提问作者KK2491
相关产品推荐
相关产品推荐

