Android 仅在脱机模式下使用Firebase Firestore

Android 仅在脱机模式下使用Firebase Firestore,android,firebase,google-cloud-firestore,offline,Android,Firebase,Google Cloud Firestore,Offline,我只想在我的应用程序中使用一种持久性方法,我正在为我的高级/付费用户使用CloudFireStore 是否也可以在仅脱机模式下为免费用户使用Firestore,这样我就不会产生成本?云Firestore是一个在线数据库,当您脱机时间较短或较长时,它会继续工作。但它仍然主要是一个在线数据库,不应该用作完全离线的数据库 其中一个原因是Firestore将本地突变保存在单独的队列中,直到它们被提交到服务器。当查询/读取命中本地数据时,Firestore客户端将从服务器获取的缓存读取与本地数据相结合。随

我只想在我的应用程序中使用一种持久性方法,我正在为我的高级/付费用户使用CloudFireStore


是否也可以在仅脱机模式下为免费用户使用Firestore,这样我就不会产生成本?

云Firestore是一个在线数据库,当您脱机时间较短或较长时,它会继续工作。但它仍然主要是一个在线数据库,不应该用作完全离线的数据库

其中一个原因是Firestore将本地突变保存在单独的队列中,直到它们被提交到服务器。当查询/读取命中本地数据时,Firestore客户端将从服务器获取的缓存读取与本地数据相结合。随着局部突变队列的增长,此操作会变慢。只要客户机偶尔将数据同步到服务器,这种速度就不会太慢。但是,如果您将Firestore用作完全脱机的数据库,随着时间的推移,它将变得禁止使用

为了更好地解释Firestore客户端如何在后台工作,请查看Firestore JavaScript SDK中的以下(长)代码注释:

  • ,负责将数据存储在本地磁盘上

  • ,它处理(a.o.)从本地缓存和本地突变的读取


    • 另一种方法是允许用户创建帐户并提供试用期。如果他们决定注册高级访问,则所有数据都已同步到Firestore。这并不能解决您只想进行本地访问的问题,但可能是您可以采取的另一种选择。

      如果您需要脱机数据库,请不要使用Firebase。Firebase将在未来花费您巨额资金。阅读这篇来自一位有3年以上Firebase使用经验的不满Firebase客户的全文

      不幸的是,我们一直在使用Firebase作为我们的目标仪表应用程序(Android和iOS),体重仪表应用程序(Android)。我们的用户数年来一直在增长,现在我们的Goal Meter应用程序有大约100000个活跃用户。其中大约95%是免费用户。Firebase数据库的成本正在快速增长,我们无法阻止免费用户数据同步到Firebase在线数据库。我们已经决定为未来的项目换一家公司。 不要犯我们犯的错误。如果你的应用需要离线数据库(我想大多数应用都需要),那么无论如何都要避免使用Firebase。转向其他解决方案,如AWS


      我已经就这个荒谬的问题联系了谷歌Firebase团队。我只能想象谷歌Firebase团队阻止完全离线功能的一种情况。原因是Firebase团队很贪婪。毕竟,如果数据库离线,他们怎么能让你付费呢?我们已经爱上了谷歌的每一款产品。我们甚至在iOS one之前生产Android版本,以支持Android和谷歌。Firebase产品令人惊叹,但这种“故意”禁用脱机功能的做法令人遗憾。Firebase团队和Google总体上都很遗憾。

      这不是Firestore支持的用例。您能告诉我,您是如何解决这个用例的吗。我现在在同一个路口。显然Frank已经回答了为什么不应该这样做,但是如果你想测试性能会有多差,你可以设置一个不可访问的主机属性-例如“myunreachablehost.unreachable.con”-在初始化Firestore时,请在
      FIRFirestoreSettings
      中。您建议如何在没有internet的情况下管理数据,然后将其上载到服务器?