Google cloud firestore 从firebase cloud函数触发器到Firestore可以以批处理模式写入多少文档?

Google cloud firestore 从firebase cloud函数触发器到Firestore可以以批处理模式写入多少文档?,google-cloud-firestore,google-cloud-functions,Google Cloud Firestore,Google Cloud Functions,我们有大量数据,需要根据状态更新文档。我们将以500个块为一批编写,并想知道一次触发器调用可以提交多少max记录 我们的触发器是firebase云函数中的pubsub触发器 我们看到每次调用有540秒的限制,所以想知道我们可以批量编写多少max文档吗 更新:添加用例 我有一个event collectionEvents,用户可以订阅某个国家发生的每个事件 用户有一个api来查看他们订阅了多少活动。它们具有查询标志,例如是活动Live/Finished/Incoming 由于我无法在事件文档中保存

我们有大量数据,需要根据状态更新文档。我们将以500个块为一批编写,并想知道一次触发器调用可以提交多少max记录

我们的触发器是firebase云函数中的pubsub触发器

我们看到每次调用有540秒的限制,所以想知道我们可以批量编写多少max文档吗

更新:添加用例

我有一个event collectionEvents,用户可以订阅某个国家发生的每个事件

用户有一个api来查看他们订阅了多少活动。它们具有查询标志,例如是活动Live/Finished/Incoming

由于我无法在事件文档中保存订阅事件的用户数组列表,假设订阅方在存储时可以超出文档限制,因此我在users集合下维护了一个单独的子集合。 例如:用户/用户id/订阅事件

事件文档的状态为Live/Finished/Incoming,我正在从每分钟运行的cron作业进行更新。这是因为我无法应用带有两个不同字段startDate和endDate的筛选器

当事件的状态发生变化时,我需要更新用户集合下的subscribedevents子集合

由于我将更新所有subscribedevents子集合项,因此我希望成批更新


希望用例能够提供一些关于它在哪里应用的清晰信息。由于firestore是为规模而设计的,不知道其他人是如何处理这种情况的,因为这种情况非常常见。

每个事务或批写入最多可以写入500个文档。 最多20次批处理写入

参考资料


与移动、web或服务器环境相比,从云功能执行云Firestore时,记录的限制不会改变。文档的最大写入速率为每秒1=>这是否意味着在540秒内,我们只能写入540个文档?当使用批次时,每个批次包含500个文档更改时,情况是否相同?该限制是指您可以重复写入单个文档的速率,而不是一批文档。感谢Doug的澄清!你有没有关于540秒内可能有多少批次的数字?实际上,我们无法在一个文档中保存数组列表,因为它的容量限制为1mb。因此,数组列表项被移动到单独的集合中,但需要处理原始文档中的更改。为此,我们正在编写一个数据库触发器来更新所有子集合条目。此子集合可以包含近百万个文档。我认为,当数据库的容量更大时,这可能是一种常见的情况。如果您担心执行所有这些批处理所需的时间,可能云功能不是正确的方法。或者考虑将批处理分成已知的大小,并将所有的函数拆分在几个函数调用中。20个最大批处理写的是什么意思?我不认为它提到了批处理的可能性。DougStevenson正在等待您的回答:@DougStevenson请看一看,安全规则中文档获取的最大数量为20与这个问题无关,因为这个问题根本不是问安全规则。我相信最初的问题已经表明,他们正在以500个为一组对文档进行批处理。如果你看一下问题中的评论历史,他们似乎有一个稍微不同的问题。