我使用Firebase数据库计算应用中某些项目的评分。我有这样的结构:
{
"id_1": {
"count" : -6
},
... // 1498 ids here
"id_1500": {
"count" : -1
}
}
当用户观看项目时,我使用count
方法简单地减少相关runTransaction
值。
我需要提供"顶级商品"列表给用户。现在我使用queryOrderedByChild
(" count")和queryLimitedToFirst
(100)来获得前100个对象。 (我使用负计数器,因为Firebase仅支持升序排序。因此,具有最大负count
值的项目将是第一个。
据我了解,查询数据库所花费的流量远远超过新值。这真的是这样吗?或者它仍然需要下载数据库的全部内容,即使我想更新它?
我只是在学习,如果我不超越免费关税计划的限制,这将是有趣的。不是来自'钱"我只想用我拥有的资源来优化我的解决方案。
例如,作为另一种解决方案,我可以编写脚本来每天/小时导出DB JSON并提供链接(使用Storage
api更大的限制)。并显示"前100名"使用此文件的列表(是的,它有时会过时几小时/分钟)。
这是一个很好的解决方案,或者向数据库写入新值仍会消耗大量的实时数据库流量吗?只下载" GB"实时数据库审核中的字段,这是否意味着上传(更新值)始终是免费的并且不会增加此流量?