Firebase实时数据库高下载使用率

时间:2017-05-03 14:22:35

标签: facebook firebase unity3d firebase-realtime-database

我们正在使用firebase实时数据库为与facebook连接的用户保存每个级别的分数。我们仍在测试此功能,一切正常,但下载使用率非常高。每次用户打开应用程序时,我都会下载非常小的数据,大约20个字节,以及每个级别的5个字节。几分钟后,下载使用开始显示超过100kB,这是很多,并且当我们向用户发布这个时,将无法进行财务扩展。这是我们正在使用的数据结构:

users{
  facebook_id{
    "firebase_id" : firebaseId,
    "max_level" : maxLevel,
    "stars" : numberOfStars,
    "scores" : {
      level : score,
    }
  }
}

我还做了一些CLI数据库分析,并且有0个非索引查询,用法似乎正确。 Here以下是截图。

有谁知道可能出错了什么?如果这只是SSL开销(看起来仍然太大),除此之外我们还可以设置我们自己的服务器。

1 个答案:

答案 0 :(得分:0)

从JSON文件中检索的数据可能比预期的多得多。 Google制定了一些有关如何最佳构造数据的准则,以使您只影响尽可能少的信息。

  

避免使用太多索引。索引数量过多会导致   增加写入延迟并增加索引条目的存储成本

     

请注意,索引具有单调递增值的字段,   例如时间戳记,可能会导致热点,从而影响   具有高读写率的应用程序。

https://firebase.google.com/docs/firestore/best-practices#indexes

此外,在索引下面的这一部分可能会有所帮助:

  

避免每秒多次写入文档。欲了解更多   有关信息,请参阅单个文档的更新。

     

使用批处理操作进行写入和删除,而不是单个操作   操作。批处理操作效率更高,因为它们可以执行   多个操作,其开销与单个操作相同。

     

在可用的地方使用异步调用,而不是同步调用。   异步调用可最大程度地减少延迟影响。例如,考虑   需要文档查找结果和结果的应用程序   呈现响应之前查询的内容。如果查找和查询   没有数据依赖性,无需同步等待   直到查询完成之前的查询为止。

     

请勿使用偏移量。而是使用游标。仅使用偏移量可以避免   将跳过的文档返回到您的应用程序,但是这些   文档仍在内部检索。跳过的文件影响   查询的延迟时间,并且您的应用需要为读取付费   检索它们所需的操作。

https://firebase.google.com/docs/firestore/best-practices#read_and_write_operations

希望这对您有帮助!