【问题标题】:Firebase Firestore - Bandwidth CostsFirebase Firestore - 带宽费用
【发布时间】:2021-08-17 10:30:42
【问题描述】:

我今天在 Firebase Firestore 中查看我的使用情况和计费时注意到,我已经产生了一些费用。我有点困惑这是从哪里来的。我只超过了一次读取/写入的每日免费限制,而且只有几百次操作。看来所有成本都来自“带宽”。有谁能向我解释这个“带宽”来自哪里,以及为什么当我的读/写非常低(每天不到 1k)时,带宽费用似乎仍然存在。我附上了一个截图,以供参考我所看到的。对此事的任何见解将不胜感激。提前致谢。

请参阅下面的会话详细信息对象的示例 JSON。

注意:每次用户在一个项目上滑动时,它都会被添加到 swiped_titles 数组中,所以你可以想象这会变成一个相当大的数组:

{
  "id" : 1202193,
  "hostUid" : "kasdnjadkjlnaASD",
  "uids": [
    "kasdnjadkjlnaASD",
    "nasduhASafafafdf"
  ],
  "created": "{TIMESTAMP HERE}",
  "last_updated": "{TIMESTAMP HERE}",
  "swiped_titles": [
      {
        "id": 09234,
        "backdropPath": "URL_HERE",
        "posterPath": "URL_HERE",
        "tilte": "Dim Sum Koi",
        "overview": "The best dim sum in the city. Authentic, delicious. made to order.",
        "category": "dine-in",
        "voteAverage": 7.3,
        "voteCount": 219,
        "uids-that-liked": [
          "kasdnjadkjlnaASD",
          "nasduhASafafafdf"
          ],
        "uids-that-swiped": [
          "kasdnjadkjlnaASD",
          "nasduhASafafafdf"
          ]
      },
      {
        "id": 08123,
        "backdropPath": "URL_HERE",
        "posterPath": "URL_HERE",
        "tilte": "That's Italian Ristorante",
        "overview": "The best fine dining italian experience in town. Delicious, family-style.",
        "category": "dine-in",
        "voteAverage": 8.3,
        "voteCount": 180,
        "uids-that-liked": [
          "nasduhASafafafdf"
          ],
        "uids-that-swiped": [
          "kasdnjadkjlnaASD",
          "nasduhASafafafdf"
          ]
      }
    ]
  }

【问题讨论】:

  • 这些文件有多大?
  • @MJ-12 - 我认为这实际上是根本问题。随着时间的推移,这些文件变得相当大。我不确定文档的确切大小,但是它们肯定会变得非常大

标签: ios firebase google-cloud-platform google-cloud-firestore


【解决方案1】:

正如@Frank 所提到的,Firestore 还对带宽和读取收费。定价详细描述here

当您使用 Firestore 时,您需要支付以下费用:

您读取、写入和删除的文档数。大量的 数据库使用的存储,包括元数据的开销和 索引。您使用的网络带宽量。存储和 带宽使用以千兆字节 (GiB) 为单位计算,其中 1 GiB = 230 字节。所有费用每天累积。

Internet Egress 定价可以在here 找到详细信息。

$0.04 读取费用表明您有大约 60K 读取超过免费配额,因此如果您的文档相当大,假设为 650 KB,则粗略估计大约 39 GB 带宽(其中 10 GB 是免费的) .这仍然不超过 4 美元。如果您的文档甚至很大,那么这可能是可能的。如果没有,您应该寻求 Firebase 支持。

【讨论】:

  • 我认为根本问题是我的文档大小。我不确定如何最好地处理这个问题。应用程序的本质是多个用户可以读取和写入的“会话”文档。想想 Tinder 刷卡应用程序,但适用于您所在地区的餐馆。每次用户在餐厅上滑动时,它的一些数据都会添加到文档中的嵌套数组中
  • @MikeSimz 你能分享一下你的文档是什么样子的吗?也许您可以获取它一次,记录/打印它并共享一个示例 JSON 对象?
  • 会做 - 给我一些
  • 更新了问题以包含示例 JSON 对象。注意swiped_titles 数组。当用户在项目上滑动时,这会变得非常大
  • @MikeSimz 属性“uids-that-liked”和“uids-that-swiped”可能是非常大的数组。 swiped-titles 本身可能是一个大数组。我通常为这些东西维护一个子集合。我无法猜测确切的数据量,但您可以执行此子集合解决方法(Firestore 每个文档限制为 1 MB,因此无论如何您都必须这样做)。如果答案有帮助,您可以接受/点赞,让其他人知道它有帮助。
【解决方案2】:

Firestore 对读取操作以及这些操作消耗的带宽收费。因此,每当 SDK(或控制台)从服务器读取文档时,您都需要为读取操作和通过网络发送的字节付费。

显然,在您的情况下,消耗的带宽是成本的大部分。这不是 Firestore 的常见情况,但绝对有可能,例如:如果您的文档都非常大。

如果您认为情况并非如此,请reach out to Firebase support 寻求个性化的故障排除帮助。他们可以检查您的项目以获取更多信息,这是其他人无法做到的。

【讨论】:

  • 我认为根本问题是我的文档大小。我不确定如何最好地处理这个问题。应用程序的本质是多个用户可以读取和写入的“会话”文档。想想 Tinder 刷卡应用程序,但适用于您所在地区的餐馆。每次用户在餐厅上滑动时,它的一些数据都会添加到文档中的嵌套数组中
  • 如果您的文档足够大,这可以解释为什么您要为带宽支付更多费用。如果您对此感到担忧,可以考虑将文档的一些重复数据存储到子集合中,但这可能意味着您随后开始为更多的文档读取付费。最后,您需要根据自己的权衡取舍,自行判断最佳模型是什么。
猜你喜欢
  • 2020-11-15
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 2020-12-04
  • 2022-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多