【问题标题】:Is HTTPS Handshake Data Included in Firebase Database Download Usage?Firebase 数据库下载使用情况中是否包含 HTTPS 握手数据?
【发布时间】:2017-12-01 02:19:40
【问题描述】:

我一直在设计一个应用程序原型,该应用程序报告不经常发生的设备生成事件(例如地理围栏转换)和用户对云功能的请求。似乎数据库触发器将是调用云功能的一种安全、简单且低成本的方法。该应用程序将事件/请求参数打包成一个小对象(

当我扩大测试规模并查看 Firebase 控制台的数据库使用面板时,我发现下载数据的大小远高于我的预期。我的客户端代码没有监听器;它只写入数据。我检查了云函数只读取预期的小对象,并且代码中的单个查询是针对具有安全规则中指定的索引的数据。

然后我开始查看Android Device Monitor 为特定客户端事件提供的网络统计信息。数据显示,当数据库连接不存在且需要建立写入服务器时,大约会收到 4500 字节的数据。由于对 HTTPS 知之甚少,我认为这是与数据库连接相关的 Firebase 开销,并考虑了其他选项。

接下来,我尝试使用我自己的 OkHttpClient 连接到 REST API 来编写我的触发器对象。当我看到写入 500 字节对象时接收到相同的 4000+ 字节时,我意识到接收到的数据必须是证书和密钥的 HTTPS 握手,并且可能是不可避免的。

我的问题是:

  1. 与 Firebase 数据库服务器建立连接时客户端收到的 4000 多个字节是否主要用于 HTTPS 连接的安全数据交换?
  2. 这些字节是否被视为“下载数据”并因此包含在 Firebase 控制台上显示的使用总量和计费计算中?
  3. 如果云函数使用admin.database() 访问 Firebase 数据库,该 SDK 是否使用 REST API 实现?在这种情况下,问题 #2 中的问题是否也适用于那里?

正如我在帖子开头所指出的,我正在处理的事件/用户请求并不常见。几乎总是这样,当需要写入数据来报告事件时,DB 连接将不存在并且需要建立。如果问题 #2 的答案是肯定的,那么被认为小于 500 字节的操作的成本实际上将是 4000+ 字节。对于这个用例,将事件报告给云函数的成本最低的方法似乎是使用HTTP triggers,而不是数据库触发器。

更新:

如果我更彻底地搜索了文档,我就不需要发布这个问题了。这一切都在Database Billing and Profiler documentation

  • 协议开销:服务器和客户端之间的一些额外流量是建立和维护会话所必需的。根据 底层协议,此流量可能包括: Firebase Realtime 数据库的实时协议开销、WebSocket 开销和 HTTP 标头开销。每次建立连接时,这个开销, 结合任何 SSL 加密开销,有助于 连接费用。虽然这通常不是大量的 带宽,如果您的有效载荷很小或者您制作 频繁的短连接。

  • SSL 加密开销:存在与安全连接所需的 SSL 加密开销相关的成本。平均而言,这 初始握手的成本约为 3.5KB,并且 每个传出消息上的 TLS 记录标头大约为 40B。为了 大多数应用程序,这只是您账单的一小部分。然而,这 如果您的具体情况需要很多,可能会占很大比例 SSL 握手。例如,不支持 TLS 会话的设备 票证可能需要大量 SSL 连接握手。

【问题讨论】:

    标签: android firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    您的问题中有很多项目细节,Stack Overflow 可能不是最好的答案。我将在下面提供一些简单的答案,但建议您reach out to Firebase support 以获得个性化的故障排除帮助。


    HTTPS 握手带宽是计费流量,应显示在 Firebase 控制台的数据库使用情况面板中。我不知道开销是多少。

    Admin SDK for Node 使用套接字连接到 Firebase 数据库。它不使用 REST API。协商 HTTPS/WebSocket 连接时的带宽在这里也是计费流量。

    在创建新容器时会建立从 Cloud Functions 到数据库的连接。这可能是在首次部署项目功能时,在一段时间不活动之后,或者当云功能由于高活动而需要扩展时。

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 2019-01-12
      • 2018-07-06
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 2018-11-06
      • 2012-11-29
      相关资源
      最近更新 更多