什么是"命名空间字符串" Cloud FireStore中的文档(用于计算文档的存储大小)?

时间:2018-02-01 19:12:39

标签: google-cloud-firestore

[编辑:感谢@JRLtechwriting,下面提到的Storage Size Calculations文档已经更新,因此它不再提及名称空间 - Firestore不支持它们 - 而且包括更完整的例子。经过这些改进后,我的问题可能不会再出现了!]

我试图编写一个通用函数来计算Cloud Firestore文档的存储大小,但我已经坚持计算文档名称的大小了,因为我没有&#39 ; t确切地知道文档"命名空间"的含义。在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)。

我觉得我应该能够通过实验找到问题的答案,但我能想到的唯一方法就是:

  1. 在非默认命名空间中创建文档
  2. 在变量" docSize"中跟踪其大小使用中的信息 存储大小计算指南)随着我逐步向其添加数据
  3. 当我收到错误消息时,我已超过最大值 文档大小(1,048,576字节,根据Quotas and Limits guide),从1,048,576减去docSize以获取命名空间的大小 串
  4. 但这种做法似乎是劳动密集型的,并且可能由于我的理解/知识的其他局限性而容易出现不准确的情况,所以我希望你们其中一个知识渊博的人可以提供帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

Firestore不支持不同的命名空间(see this SO answer),因此所有文档都将位于默认命名空间中。命名空间字符串大小始终为0。

我帮助维护Firestore文档,因此我更新了页面。