离线到在线同步数据库

8
我正在开发一个系统,我的客户要求我提供离线服务和在线备份,并附带iOS、Android和Windows应用程序。
我需要的东西:
1. 支持离线和在线(主)数据库,在连接时可以同步。 2. 对于iOS和Android也是一样的,但我有点担心这些手机是否能处理这种工作。 3. 为了实现这个目标,在Android和iOS中使用什么。
请尽量提供建议。
注:我还没有决定任何事情,但对于后端,我将使用Python和Django。我还在设计过程中。
4个回答

2
我建议使用 Firebase 数据库(实时数据库或 Firestore)!!!
使用 Firebase DB 时,当客户端离线时,它们会将新数据写入本地缓存,以便用户可以像在线应用程序一样享受您的应用。 当重新联机时,它们会自动与主机数据库和所有设备同步,以便用户可以享受实时体验。
此外,它提供了一个 No-SQL 可扩展数据结构,让你真正节省时间。
此外,Firebase 还提供了一个免费计划,所以你可以自由地尝试并使用 Firebase DB 构建一些迷你应用程序。
原始答案: "最初的回答"

2
在安卓中,支持使用SQLite数据库作为本地数据库进行离线使用。
当应用处于离线模式时,在SQLite中保存数据。
您需要编写API将数据发送到服务器。
当网络连接可用时,将本地数据发送到服务器。
创建一个状态列,在其中更新数据已被发送到服务器的状态,然后将状态设置为true。下次只发送那些状态为false的数据。

使用状态列方法可能会有什么缺点?或者根本没有缺点吗? - abhinav
@abhinav 写API将数据发送到服务器、处理不同事件和时间同步的怪物任务可能会很复杂。 - paul_f

0

首先,您需要决定用于离线存储的数据库。例如Realm、SQLite。

首先调用API并响应数据将被转储到本地数据库中。下一次,您必须从本地数据库获取数据并显示出来。同时,您必须在后台调用API,一旦API返回数据,您需要检查响应数据和本地数据是否相同,如果相同则忽略,否则用API响应数据替换本地数据。

当您需要向服务器发送数据时,需要执行相同的操作。如果用户离线,则需要将数据存储在本地数据库中,一旦用户上线,即可将数据发送到服务器。


0

我已经找到了两个真正的解决方案来解决这个问题

  1. Firebase
  2. CouchDB

通过SQLite或LocalStorage进行同步在投入生产后会带来大量问题。这是一个真正的噩梦,需要很多经验和努力才能使其继续运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接