将本地db(Sqlite)与服务器db android同步
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将本地db(Sqlite)与服务器db android同步相关的知识,希望对你有一定的参考价值。
我想创建一个POS应用程序,但由于某种原因,应用程序应该在没有互联网连接时工作(后来在连接到互联网时进行同步)。我想到的唯一方法是在本地数据库与服务器之间进行同步,但我不知道如何或最好的方法来做到这一点。我有几个问题:
- 是否可以使用FCM云消息来实现此目的?我的意思是客户端A告诉FCM数据已经改变,然后FCM告诉几个客户端(电话)在后台进行同步数据库而没有用户(电话所有者)确认(自动)。
- 或唯一的方法是使用这种方法https://github.com/codepath/android_guides/wiki/Server-Synchronization-(SyncAdapter)?如果是这样,我们多久可以将db本地与服务器同步?是同步每3分钟会好吗?
答案
是的,为此使用FCM实时数据库。 FCM在应用程序内部以及云上为您管理数据。因此,如果您将一些数据写入JSON树但没有Internet连接,则一旦连接可用,数据将被推送到云中。文件清楚地说明了这一点(阅读关于'写入离线数据'的最后一节:https://firebase.google.com/docs/database/android/read-and-write
此外,客户端脱机时添加到数据库的任何数据都将在客户端上线后发送 - 因为实时数据库也会保存数据。
每3分钟使用一次服务器同步是不可行的 - 并且您的应用程序更有可能在某个时刻被系统杀死。使用FCM和云功能以及JobSchedulers可以获得最佳结果。
以上是关于将本地db(Sqlite)与服务器db android同步的主要内容,如果未能解决你的问题,请参考以下文章
将 Android 应用上的 SQLite DB 与远程 MySQL DB 同步
可以将 Core Data 与不同的预填充 sqlite db 一起使用吗?
Django:从本地开发推送时,SQLite 在 Heroku 上覆盖 POSTGRESQL db