Firebase 使用指标中的数据库 I/O 容量("Analytics" 选项卡)

Database I/O Capacity in Firebase usage metrics ("Analytics" tab)

在 Firebase 的 "Analytics" 选项卡中,图表显示了过去 24 小时内使用的容量。

我使用 Firebase REST API 进行了一些查询,最终使用了 100% 的容量。这到底是什么意思?此时,用户是否仍然可以访问该基地? (我这边有一些错误 500)

另外,容量使用率达到 100% 的原因可能是什么?当我们尝试从 Firebase 检索许多数据时? (它发生在我停止使用 limitToLast 参数时)

Firebase 数据库收到读写请求后,依次执行。数据库 I/O 容量图表显示了数据库忙于执行 read/write 请求的可用时间百分比。

当此图表达到 100% 时,表示数据库一直在读取或写入。您正在使用您的应用可用的所有数据库 I/O 容量。发生这种情况时,任何其他操作都将放入队列中,必须等待轮到它们。

这通常是由于从许多连接的设备写入或当某些连接的设备开始侦听长数据列表时造成的。一个很常见的原因是当您从数据库的根目录读取 ref.once('value'... 时:加载整个数据库所花费的时间会随着数据库的大小而增加。

要记住的一件事是,虽然您可以通过在查询中使用 limitTo...() 来减少带宽使用,但 Firebase 仍需要考虑列表中的所有数据,从而从磁盘中读取所有数据.对包含数十万项的列表重复 limitToLast(1).once('value'... 是耗尽所有数据库 I/O 容量的必经之路,即使带宽使用量可能非常小。