javascript - Firebase 数据库以编程方式检查下载的数据大小

标签 javascript firebase firebase-realtime-database

我正在为我的项目使用 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/

相关文章:

javascript - Amp 中 Json 值的子字符串

javascript - 在 smarty 或 javascript/jQuery 中匹配特定单词后 chop 字符串

firebase - 使用 npm 安装 firebase 时,gyp 和 node-pre-gyp 失败

javascript - 尝试将数组添加到 firebase 但遇到问题,因为 Nodejs 没有异步性质

javascript - 使用对象元素作为参数的 Firestore 查询

android - 从 Firebase 数据库填充 ListView

elasticsearch:使用 javascript 创建带有映射的索引

javascript - 制作一个固定位置的div

database - 我们可以在 Laravel 中使用 Firebase 数据库吗?优缺点都有什么?

javascript - 有没有办法在 TypeScript 类定义中转义和使用保留字?