首页 > 解决方案 > 查询大小会影响 Firestore 快照侦听器的性能吗?

问题描述

我的应用程序中有 3 个活动的 Firestore 快照侦听器,每个侦听器都侦听不同集合(不是文档,而是整个集合)中的更改。

目前,集合的大小很小,但将来可能会变得更大,所以这会影响性能,还是集合的大小无关紧要?

我知道一次不应该有超过 100 个活动快照,并且经常连接和断开侦听器并不是一个好主意,但是在文档/集合的实际大小上找不到任何东西监听器已连接...

标签: javascriptfirebasegoogle-cloud-platformgoogle-cloud-firestore

解决方案


可能造成性能问题的不是查询的大小,而是一段时间内的更改数量。如果您有 3 个包含 1000 个文档的集合,其中每 2 分钟会更改一些文档,这不会带来很大的性能问题,但是如果您有 3 个包含 100 个文档的集合/查询,但它们每隔几秒钟就会更新很多文档,您将注意。特别是如果您有在 Firebase 和状态之间同步数据的状态管理。

我会在经常更新的查询中分离侦听器,并将它们留给那些在一段时间内保持不变但可以获得更新的侦听器。例如,在具有下拉列表的应用程序中,这是一个常见原因。他们经常保持不变,但可以得到更新,所以我们听他们的。

也只是为了说清楚。如果它们的尺寸变大,那么它们每个的初始加载当然会花费更长的时间,但这应该是显而易见的。由于 Firestore 的出色离线工作只有在第一次加载时才会被注意到,然后用户将从缓存中获取数据,然后从服务器获取数据,因此他不会注意到它。


推荐阅读