2017-12-18 635 views
0

我想创建一个POS应用程序,但由于某种原因,应用程序应该在没有互联网连接时工作(以及稍后在连接到互联网时进行同步)。我唯一想到的方法是在本地数据库和服务器之间进行同步,但我没有想法如何或最好的方法来做到这一点。我对此有几个问题:同步本地数据库(Sqlite)与服务器数据库android

  1. 是否可以使用FCM云消息传递来执行此操作?我的意思是客户端A告诉FCM数据已经改变,然后FCM通知几个客户端(电话)在后台执行同步数据库,而无需用户(电话拥有者)确认(自动)。

  2. 还是唯一的办法就是用这个方法https://github.com/codepath/android_guides/wiki/Server-Synchronization-(SyncAdapter)?如果是这样,我们多久可以同步数据库本地服务器?每3分钟同步会好吗?

+0

每3分钟同步一次不会太好,那会太频繁了。您可以使用PushNotification(Point 1)和备份点2作为w埃尔。当设备关闭或没有互联网连接时,第2点将有所帮助。 –

+0

当设备上没有互联网连接时,FCM消息将不会被发送/接收 – theFunkyEngineer

+1

[Android应用程序和网络服务器之间的数据同步]可能重复(https://stackoverflow.com/questions/10829371/sync-data-between- Android的应用程序和网络服务器) – theFunkyEngineer

回答

1

是的,使用FCM实时数据库为此。 FCM在应用程序内部以及云上为您管理数据。因此,如果您将一些数据写入JSON树中,但您没有互联网连接,则一旦连接可用,数据就会被推送到云中。 这些文档清楚地说明了这一点(阅读关于'写入离线数据'的最后一节:https://firebase.google.com/docs/database/android/read-and-write

此外,客户端脱机时添加到数据库的任何数据都将在客户端上线后发送 - 因为实时数据库保持数据的存储

每隔3分钟使用一次服务器同步是不可行的 - 并且很可能您的应用会被系统在某个点或另一个点杀死。使用FCM和云功能以及JobSchedulers得到最好的结果

相关问题