在仅离线模式下使用 Firebase Firestore
Using Firebase Firestore in offline only mode
我只想在我的应用程序中使用一种持久性方法,并且正在为我的 premium/paying 用户使用 Cloud Firestore。
免费用户是否也可以在仅离线模式下使用 Firestore,这样我就不会产生费用?
Cloud Firestore 是一个在线数据库,可在您短时间或长时间离线时继续工作。但它仍然主要是一个在线数据库,不应用作完全离线的数据库。
其中一个原因是 Firestore 将本地变更保存在单独的队列中,直到它们被提交到服务器。当 query/read 命中本地数据时,Firestore 客户端会将它从服务器获得的缓存读取与本地突变结合起来。随着本地突变队列的增长,此操作会变慢。只要客户端偶尔向服务器同步数据,这种减慢就不会很明显。但是如果你使用 Firestore 作为一个完全离线的数据库,随着时间的推移它会变得令人望而却步。
为了更好地解释 Firestore 客户端如何在后台工作,请查看 Firestore JavaScript SDK 中的这些(长)代码注释:
the persistence class,负责将数据存储到本地磁盘
the local store class,处理(a.o.)本地缓存和本地突变的读取。
另一种方法是允许用户创建帐户并提供试用期。如果他们决定注册高级访问权限,则所有数据都已同步到 Firestore。这并不能解决您希望仅具有本地访问权限的问题,但您可以采取不同的选择。
如果需要离线数据库,请不要使用Firebase。未来 Firebase 将花费你巨额资金。阅读这篇完整的文章,来自一位拥有 3 年以上 Firebase 使用经验的不满意的 Firebase 客户。
遗憾的是,我们一直在将 Firebase 用于我们的 Goal Meter 应用程序(Android 和 iOS)、Weight Meter 应用程序(Android)。我们的用户多年来一直在增长,现在我们的 Goal Meter 应用程序拥有大约 100,000 名活跃用户。其中大约 %95 是免费用户。 Firebase 数据库的成本在快速增长,我们无法阻止免费用户数据同步到 Firebase 在线数据库。我们决定为我们未来的项目换一家公司。
不要重蹈我们的覆辙。如果您的应用程序需要离线数据库(我想大多数应用程序确实需要它),那么请务必避免使用 Firebase。转向其他解决方案,例如 AWS。
我已经就这个荒谬的问题联系了 Google Firebase 团队。我只能想象一种情况,为什么 Google Firebase 团队阻止了完整的离线功能。原因是因为 Firebase 团队贪婪。毕竟,如果数据库处于离线状态,他们怎么能让你付钱呢?我们爱上了 Google 的每一件产品。我们甚至在 iOS 之前生产 Android 版本,以支持 Android 和 Google。 Firebase 产品很棒,但是 "purposefully" 禁用离线功能是一种耻辱。对 Firebase 团队和整个 Google 来说是一种耻辱。
我只想在我的应用程序中使用一种持久性方法,并且正在为我的 premium/paying 用户使用 Cloud Firestore。
免费用户是否也可以在仅离线模式下使用 Firestore,这样我就不会产生费用?
Cloud Firestore 是一个在线数据库,可在您短时间或长时间离线时继续工作。但它仍然主要是一个在线数据库,不应用作完全离线的数据库。
其中一个原因是 Firestore 将本地变更保存在单独的队列中,直到它们被提交到服务器。当 query/read 命中本地数据时,Firestore 客户端会将它从服务器获得的缓存读取与本地突变结合起来。随着本地突变队列的增长,此操作会变慢。只要客户端偶尔向服务器同步数据,这种减慢就不会很明显。但是如果你使用 Firestore 作为一个完全离线的数据库,随着时间的推移它会变得令人望而却步。
为了更好地解释 Firestore 客户端如何在后台工作,请查看 Firestore JavaScript SDK 中的这些(长)代码注释:
the persistence class,负责将数据存储到本地磁盘
the local store class,处理(a.o.)本地缓存和本地突变的读取。
另一种方法是允许用户创建帐户并提供试用期。如果他们决定注册高级访问权限,则所有数据都已同步到 Firestore。这并不能解决您希望仅具有本地访问权限的问题,但您可以采取不同的选择。
如果需要离线数据库,请不要使用Firebase。未来 Firebase 将花费你巨额资金。阅读这篇完整的文章,来自一位拥有 3 年以上 Firebase 使用经验的不满意的 Firebase 客户。
遗憾的是,我们一直在将 Firebase 用于我们的 Goal Meter 应用程序(Android 和 iOS)、Weight Meter 应用程序(Android)。我们的用户多年来一直在增长,现在我们的 Goal Meter 应用程序拥有大约 100,000 名活跃用户。其中大约 %95 是免费用户。 Firebase 数据库的成本在快速增长,我们无法阻止免费用户数据同步到 Firebase 在线数据库。我们决定为我们未来的项目换一家公司。 不要重蹈我们的覆辙。如果您的应用程序需要离线数据库(我想大多数应用程序确实需要它),那么请务必避免使用 Firebase。转向其他解决方案,例如 AWS。
我已经就这个荒谬的问题联系了 Google Firebase 团队。我只能想象一种情况,为什么 Google Firebase 团队阻止了完整的离线功能。原因是因为 Firebase 团队贪婪。毕竟,如果数据库处于离线状态,他们怎么能让你付钱呢?我们爱上了 Google 的每一件产品。我们甚至在 iOS 之前生产 Android 版本,以支持 Android 和 Google。 Firebase 产品很棒,但是 "purposefully" 禁用离线功能是一种耻辱。对 Firebase 团队和整个 Google 来说是一种耻辱。