首页 文章

针对脱机缓存数据的Firestore定价说明

提问于
浏览
1

对我来说,Firestore会向我收取本地缓存数据的读取查询,这似乎很奇怪,但我在Firestore Pricing document中找不到任何相反的澄清 . 如果我强制Firebase进入离线模式,然后对我本地缓存的数据执行读取操作,那么我仍然需要为我检索的每个实体付费吗?

其次,我的应用程序中的离线用户会向单个实体写入许多小更新 . 我希望每次更改都在本地持久化(如果他们退出应用程序),但我最终只需要一致的保存到 Cloud 端 . 当用户重新连接到互联网并且Firestore刷新本地更改时,我是否会向该实体收取一次写入请求,或者我在离线时按 update 呼叫收取一个请求?

Firestore可能非常适合我的用例,但如果离线读取和写入的收费与在线收费相同,那么它将不是一个经济实惠的选择 .

1 回答

  • 0

    正如offical documentation所说,

    Cloud Firestore支持脱机数据持久性 . 此功能会缓存您的应用正在使用的Cloud Firestore数据的副本,以便您的应用可以在设备离线时访问数据 . 您可以编写,读取,收听和查询缓存数据 . 当设备重新联机时,Cloud Firestore会将应用程序所做的任何本地更改同步到Cloud Firestore中远程存储的数据 .

    因此,每个使用Firestore数据库并将 PersistenceEnabled 设置为true的客户端都会维护它自己的数据库内部(本地)版本 . 插入/更新数据时,首先将其写入此数据库的本地版本 . 因此,对数据库的所有写入都将添加到 queue . 这意味着一旦您重新联机,存储在那里的所有操作都将在Firebase服务器上提交 . 这也意味着这些操作将被视为独立操作而不是整体操作 .

    但请记住,不要将Firestore用作仅限脱机的数据库 . 它实际上是作为一个在线数据库而设计的,可以在短时间内连接中断 . 离线时,它将保持写操作的队列 . 随着此队列的增长,本地操作和应用程序启动将变慢 . 没什么大不了的,但随着时间的推移,这些可能会增加

    如果 Google Cloud Firestore 定价模型不能很好地适合您的用例,请使用 Firebase Realtime Database . 正如Firebase官方博客中的post中所提到的,您仍可能想要使用实时数据库的原因之一是:

    如上所述,Cloud Firestore的定价模式意味着每个客户端每秒执行大量小型读写操作的应用程序可能比实时数据库中类似性能的应用程序要昂贵得多 .

    因此,您可以选择哪个选项 .

相关问题