我正在为我的项目使用 Firebase 数据库
我想构建一个接口(interface)来监控每次从数据库读取每个操作的数据大小。
我已经浏览了 Firebase 文档和 stackoverflow,但似乎没有任何相关的解决方案。
有办法计算数据大小吗?通过 firebase SDK 或客户端 JS 实现它对我来说也是可以接受的。它不必与 Firebase 计算带宽或大小的方式 100% 匹配,但 80% 的匹配也是可以接受的。
谢谢。
最佳答案
计算下载数据的存储大小非常简单:只需JSON.stringify
下载的数据即可。所以像这样:
ref.once("value", function(snapshot) {
console.log(JSON.stringify(snapshot.val()).length);
});
这会错过外框本身的侧面,因此您需要添加 snap.key().length
和 '"":{}'.length
对于其他一切。
不幸的是,对于带宽来说,情况并不那么容易。实际上一半也同样简单,因为 HTTP 带宽非常接近我上面显示的 JSON 存储大小。您还可以在浏览器的“网络”选项卡中轻松检查这一点,在这里您可以看到发送和接收的确切 Web Socket 帧。
但棘手的一点是,所有流量都通过 HTTPS,并且 SSL 连接的协商取决于连接而不是字节数。现代浏览器非常擅长保持 SSL 连接打开并重用它,但这仍然是一个难以预测的因素,并且很少依赖于您(或 Firebase 的)代码。
关于javascript - Firebase 数据库以编程方式检查下载的数据大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52771106/