Firestore Collection写入率

时间:2019-08-27 07:37:01

标签: firebase google-cloud-firestore

关于Best practices for Cloud Firestore的文章指出,我们应将单个集合的写操作速率保持在每秒1,000个操作以下。

但是,与此同时,Firebase团队在Choose a data structure中说,根级集合“提供了最大的灵活性和可扩展性”。

如果我有一个根级集合(例如“消息”),该集合期望每秒进行1000次以上的写操作,该怎么办?

2 个答案:

答案 0 :(得分:1)

如果您认为以每秒1,000次操作的限制为限,那么如果您发现自己需要更多的限制,则应该考虑更改数据库架构以允许对多个集合进行写操作。因此,您应该将集合数相乘。拥有一个消息集合(每个用户都可以在其中添加消息)听起来不是一个好方法,因为您很快就会达到该限制。在这种情况下,您应该将该集合拆分为多个其他集合。可能的模式可能是我在以下视频中解释的模式:

请参见该视频的末尾,有一个名为messages的集合,该集合在术语中包含一个roomId文档。该文档包含名为roomMessages的子集合,该子集合包含来自聊天室的所有消息作为文档。在这种情况下,您不可能达到该限制。

  

但是,与此同时,Firebase团队在“选择一种数据结构中说,根级集合“提供了最大的灵活性和可伸缩性”。

还要记住,Firestore can as quickly look up a collection at level 1 as it can at level 100,所以您不必为此担心。

答案 1 :(得分:0)

每个集合 1,000 次操作/秒的限制仅适用于实时更新,因此只要您没有快照侦听器,这应该没问题。

我在 Cloud Firestore Google Groups

上问了这个问题 <块引用>

如果首先没有其他限制,则限制为每秒 10,000 次写入: https://firebase.google.com/docs/firestore/quotas#writes_and_transactions

还要记住 best practices for scaling cloud firestore