【发布时间】:2018-07-12 05:07:10
【问题描述】:
[编辑:感谢@JRLtechwriting,下面提到的Storage Size Calculations 文档已经更新,因此它不再提及命名空间——Firestore 不(还?)支持它们——并且包括更多完整的例子。经过这些改进,我的问题可能不会再出现了!]
我正在尝试编写一个通用函数来计算 Cloud Firestore 文档的存储大小,但我已经坚持计算文档名称的大小,因为我不知道文档名称的确切含义Storage Size Calculations guide 中的“命名空间”:
文档名称的大小是以下各项的总和:
- 命名空间字符串大小(如果不在默认命名空间中)
- 文档名称的完整字符串大小(每个整数 ID 为 8 个字节)
- 16 个额外字节
它还说命名空间存储为字符串。所以,对于这个假设的 CFS 文档...
var alovelaceDocumentRef = db.collection('users').doc('alovelace');
...根据Cloud Firestore Data Model 文档,也可以这样引用...
var alovelaceDocumentRef = db.doc('users/alovelace');
...命名空间字符串是'users' 吗?或者'users/'?不幸的是,存储大小计算指南中的所有示例都假定默认命名空间(大小为 0)。
我觉得我应该能够通过实验找到问题的答案,但我能想到的唯一方法是:
- 在非默认命名空间中创建文档
- 使用变量“docSize”中的信息跟踪其大小 存储大小计算指南),因为我会逐步向其中添加数据
- 当我收到一条错误消息时,我已超过最大值 文档大小(1,048,576 字节,根据Quotas and Limits guide),从 1,048,576 中减去 docSize 得到命名空间的大小 字符串
但是这种方法似乎是劳动密集型的,并且可能由于我的理解/知识的其他限制而导致不准确,所以我希望你们中的一个更有知识的人可以提供帮助。谢谢!
【问题讨论】: