Luk*_*ške 11 facebook unity-game-engine firebase firebase-realtime-database
我们使用firebase实时数据库为与facebook连接的用户保存每个级别的分数.我们仍在测试此功能,一切正常,但下载使用率非常高.每次用户打开应用程序时,我都会下载非常小的数据,大约20个字节,以及每个级别的5个字节.几分钟后,下载使用开始显示超过100kB,这是很多,并且当我们向用户发布这些时,将无法进行财务扩展.这是我们使用的数据结构:
users{
facebook_id{
"firebase_id" : firebaseId,
"max_level" : maxLevel,
"stars" : numberOfStars,
"scores" : {
level : score,
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还做了一些CLI数据库分析,并且有0个非索引查询,用法似乎是正确的.
这是截图.
有谁知道什么可能是错的?如果这只是SSL开销(看起来仍然太大),除此之外我们还可以设置我们自己的服务器.
Omn*_*Owl -1
您从 JSON 文件中检索到的数据可能比您预期的要多得多。谷歌已经制定了一些关于如何最好地构建数据的指南,以便您只影响尽可能少的信息。
避免使用太多索引。过多的索引会增加写入延迟并增加索引条目的存储成本。
请注意,对具有单调递增值(例如时间戳)的字段进行索引可能会导致热点,从而影响具有高读写速率的应用程序的延迟。
https://firebase.google.com/docs/firestore/best-practices#indexes
此外,索引下面的这一部分可能会有所帮助:
避免每秒多次写入文档。有关详细信息,请参阅对单个文档的更新。
使用批量操作进行写入和删除,而不是单个操作。批处理操作效率更高,因为它们执行多个操作的开销与单个操作相同。
如果可用,请使用异步调用而不是同步调用。异步调用最大限度地减少延迟影响。例如,考虑一个在呈现响应之前需要文档查找结果和查询结果的应用程序。如果查找和查询不存在数据依赖性,则无需同步等待查找完成后再发起查询。
不要使用偏移量。相反,请使用光标。使用偏移量只能避免将跳过的文档返回到应用程序,但仍会在内部检索这些文档。跳过的文档会影响查询的延迟,并且您的应用程序需要为检索它们所需的读取操作付费。
https://firebase.google.com/docs/firestore/best-practices#read_and_write_operations
希望这对您有帮助!
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |