我是Firebase的新手,我正在研究它是否符合我们的需求。它有我们需要的一切,除了离线数据库。嗯,我知道它有能力在用户离线时缓存更改,然后在用户联机时同步更改,但这不是我要说的。
由于firebase的成本很高,我们希望我们的免费用户能够离线使用应用程序,无论用户是否在线,数据都不应该同步到云端,只对订阅用户使用sync。
我们尚未深入考虑的一种解决方案是使用离线DB,如SQLite和:
( a)当用户订阅时,将数据移动到firebase
b)如果用户取消订阅,则将数据移动到SQLite
但是这个解决方案需要两个完全不同的编码--同样的东西。从SQLite迁移到防火墙和从防火墙迁移到SQLite的额外代码。是否有更好的解决方案来使用Firestore数据库,同时也具有完整的脱机数据库功能?
发布于 2022-01-07 11:20:22
在我看来,你的解决方案是可行的。但是有些情况你应该考虑进去。
当用户订阅时,将数据移动到Firebase。
据我所知,是一个或另一个。在这种情况下,当用户被订阅时,您应该始终考虑锁定本地SQLite数据库以便写入,直到all将数据写入Firebase服务器。当操作完成时,您才应该允许用户在云中写入数据。
为什么需要这个?总是有一致的数据。
b)如果用户取消订阅,则将数据移动到SQLite。
如果用户取消订阅,您可以考虑使用与上面几乎相同的机制。但是首先,您必须清除本地数据库,因为它将包含过时的数据,然后将所有数据从Firestore复制到SQLite数据库中。
编辑:,您也可以考虑从本地缓存复制数据,而不是从Firebase服务器获得它。这将意味着不需要任何费用。
但是这个解决方案需要两个完全不同的编码--同样的东西。
这是正确的,但由于离线数据库和联机数据库都共享相同的字段,操作可能没有想象的那么复杂。只需对用户对象中的属性进行附加实时侦听器,很可能称为“订阅”,它可以保存true/false的值,并在发生更改时采取相应的操作。
https://stackoverflow.com/questions/70619763
复制相似问题