Firestore存储大小限制了如何存储大型阵列

时间:2019-02-26 09:02:49

标签: firebase google-cloud-firestore

我得到了一个集合users/$userID/followers,该用户ID是Firebase UID,所以长29个字节(字符串大小是按UTF-8编码的字节数+ 1来计算的)。

在每个用户文档中,我都有一个名为followers的数组和另一个名为followings的数组。这两个数组都包含很多userID,所以这就是问题所在。

在Firestore中,每个文档的最大大小为1mb,因此很容易看到我很快就会用完空间。我的问题是管理这样的大型阵列的最佳方法是什么。

最明显的选择:创建另一个文档,该文档仅包含一对新数组以继续保存此数据(并在达到文档限制时以递归方式进行此操作)。

那么有更好的主意吗?或者至少是如何简化流程。

有关尺寸限制的更多信息,请点击此处: https://firebase.google.com/docs/firestore/storage-size?hl=en-419

2 个答案:

答案 0 :(得分:1)

如果您担心数组的大小,则应该将每个项目从数组中拆分出来,并使其成为自己的文档。这是使用Firestore来存储大量单个项目的大规模扩展性的唯一方法。

是的,它将花费更多。可伸缩性要付出代价。

答案 1 :(得分:0)

1 MB是1百万个字节。您将有足够的时间来存储大约35,000个UID来耗尽空间。

我怀疑有人会拥有35,000个关注者/关注者。甚至Facebook的数量也限制在5000个,我想你还是不存在。