存储和访问包含 5000 多个文档的整个集合

Store and access whole collection with over 5000 documents

我有 Firestore 对象,可能附加了一些大表。我必须存储和访问可能超过 5000 行的表,所以我的第一个想法是将它们存储为我的对象的子集合。

问题是在我的 Cloud Function 中检索 5000 行需要相当长的时间,而且每次检索数据时我都会收取 5000 次读取的费用,因此费用可能会很高。

是否有某种方法可以存储子集合以便“缓存”它? 将这些表存储在文件甚至 CDN 中是否有意义?

如果您想将数据从 Firestore 预加载到支持持久化的 SDK 中,您可以use data bundles to do so, for example by serving the 5,000 documents as a single bundle from a CDN or a Cloud Storage bucket

但是,您在 Cloud Functions 中使用的 Admin SDK 不支持磁盘持久性,因此您必须从 CDN/Storage 为每个新实例加载文件,这也可能很慢或昂贵的操作。

如果数据不经常更改,请考虑是否将数据包包含在 Cloud Functions source/build 文件夹本身中并从那里加载。这将使它成为您的函数运行所在的容器实例的一部分,因此读取将是免费的,并且数据访问将是本地的,非常快。