首页 > 解决方案 > 为什么 Firestore 查询的网络选项卡中的“内容已下载”超过一分钟?

问题描述

当我查询我的 Firestore 数据库时,它似乎执行得很快——我取回数据并在屏幕上呈现我需要的内容。但是,当我在 Chrome 开发工具的网络选项卡中查看请求时,“已下载内容”部分(蓝色条)显示下载需要一分钟以上。为什么会这样?数据的获取和渲染速度比这快得多,而且返回的数据大小也不是那么大(通过网络传输的 12.7kB)。这是一个屏幕截图:

网络选项卡的屏幕截图

这是我应该关心的事情吗?我真的只是在寻找关于这个问题的清晰/理解,因为目前我很困惑为什么查询似乎就我在屏幕上看到的内容而言如此之快,以及为什么内容下载需要这么长时间。

同样对于上下文,这发生在使用 create-react-app 制作的 React 应用程序中。

标签: javascriptreactjsfirebaseperformancegoogle-cloud-firestore

解决方案


Firestore JavaScript SDK 使用网络通道作为与服务器通信的协议。这意味着它会打开一个持久的 HTTP 连接,服务器可以通过该连接通知客户端数据的更新,这个过程称为长轮询。

您在网络选项卡中看到的是这种长轮询:保持打开并接收数据相对较长时间的连接,但这不会导致您的应用程序出现任何性能问题。这是 Firestore 有线协议的正常部分,无需担心。

如果您想了解有关 Firestore 在客户端和服务器之间的通信的更多信息,我建议启用其调试日志记录并检查输出,因为它通常比原始线路流量更具可读性。


推荐阅读