android - 如何降低firebase实时数据库下载成本?
问题描述
在firebase实时数据库中制作2个数据库是否有助于降低成本并增加每天360MB的每日下载限制?
解决方案
降低成本的最简单方法是减少下载量。您可以通过尽可能多地将数据缓存在本地存储上并不断同步敏感数据来做到这一点。
在阅读不同的文章时,一篇文章引起了我的注意。我将总结我的发现,并将链接添加到文章中。
可能的优化:
- 优化保存在数据库中的序列化数据,这可以通过 GSON 轻松实现,GSON 是一个处理 JSON 数据的库,允许使用注释更改序列化实体的名称。(还有许多其他库可以做到这一点)GSON @SerializedName
- 实现仅在应用程序生命周期内保留的内存缓存。此缓存的工作原理如下:
- 用户打开应用程序并进入应用程序中列出任何类型的收藏夹的地方,比如说巴士站收藏夹。
- 应用程序向内存缓存请求巴士站收藏夹列表,但由于应用程序刚刚启动,它返回 null。
- 然后应用程序仅向 Firebase 请求包含 Bus Stop 收藏夹的节点,这些节点是从 Internet 下载的,然后计费一次。
- 此收藏夹的副本保存在内存缓存中。
- 用户玩收藏夹,添加、删除或编辑它们。
- 每次修改完成时,生成的收藏夹列表都会保存在内存缓存中并发送到 Firebase(因为上传数据是免费的)。
- 现在用户可以离开应用程序,除非它被用户从最近的应用程序堆栈中明确删除或被 Android 杀死,否则用户可以返回应用程序并继续使用 Bus Stop 收藏夹,而不会产生额外的费用。
链接到提到的文章。 希望这可以帮助!!!。
推荐阅读
- types - 如何将 type_info 转换为 Objective-c 的“类”类型
- asp.net - Rest API - 部分更新
- git - Git - 作者的 rebase 提交
- r - Scale_y_continous 不需要离散值
- java - 在智能合约中获取交易创建者的身份?
- javascript - redux-saga:在令牌刷新后重试捕获的动作
- ios - 使用 twitter 登录总是返回错误
- html - Angular 4:如何在输入列表中使用模式
- ruby-on-rails - Ruby 代码的构建工具是什么?
- scala - 在 akka-http 中处理 SIGTERM