在应用内购买后,我应该使用本地数据库并切换到Firestore吗?

问题描述 投票:1回答:2

我正在为Android开发个人健康记录管理应用,目前将Firestore用作后端。

我想提供该应用程序的免费版本,该应用程序仅在设备上存储数据。

一旦用户购买了每月订阅,我想切换回Firestore。

实现这种设置的最佳方法是什么?即使有可能,强迫Firestore始终使用其离线缓存似乎也不是一个好主意。

在应用内购买后,我是否应该使用第二个数据库在设备上存储数据并将数据迁移到Firestore?如果是这样,我该如何选择数据库和系统体系结构以使我的生活更轻松?

android database firebase google-cloud-firestore persistence
2个回答
1
投票

实现这种设置的最佳方法是什么?

最好的方法是使用其他数据库在本地存储数据。

即使有可能,强迫Firestore始终使用其脱机缓存似乎也不是一个好主意。

Cloud Firestore是not构建为脱机数据库,是一种在线数据库,当您从短时间到较长时间脱机时,它仍可继续工作。脱机时,尚未同步到服务器的暂挂写入将保留在队列中。如果您在不在线的情况下进行过多写入操作,则该队列将快速增长,并且不仅会降低write操作的速度,还会降低read操作的速度。

如果是这样,我在数据库选择和系统架构方面可以做什么,使我的生活更轻松?

我认为,不错的选择可能是Room Persistence Library,它是Android Jetpack的一部分。


0
投票

您的一个好方法是在设备中维护本地数据库。购买后,使用workmanager将数据库记录推送到firestore,以将服务器数据库与本地数据库同步。接下来,首先将记录插入本地db,然后将请求发送到workmanager队列,以将记录上传到服务器。通过这种方式,您的本地数据库成为真实情况的唯一来源。

当用户手动请求同步时,为现有或新用户从服务器到设备同步记录。这提供了一个选项,使用户可以在任何设备上获取其数据库记录。

与本地保持服务器数据库同步是Workmanager作业,当您指定适当的作业请求触发条件时,可以顺利处理。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.