0

我有一个在同一用户的多个 android 设备上运行的应用程序。这些设备中的任何一个都必须维护一个需要在所有设备之间同步的本地数据库。两台设备很可能同时添加或删除条目,这意味着很可能会发生不一致。

这是我需要的东西的清单:

  • 数据保存在类似数据库的方案中(每个条目一行)
  • 不会因为当前的修改而丢失任何更改
  • 与未更改的数据相比,更改非常小(需要增量更新)
  • 当设备未连接到谷歌驱动器时,数据可能会更改
  • 带宽很重要(同步整个事情是不可能的。但是块是)
  • 可以添加、修改和删除条目(也可以通过删除条目的内容来完成)
  • 条目相当小(~2kb)

我知道 Google 驱动器不是数据库,因此我目前正在搜索和考虑一种解决方案,该解决方案在没有任何其他服务器的情况下仍然允许这种情况。我知道这可能没有解决方案,但在我放弃这个想法之前,我想确定一下。

到目前为止,我发现唯一对这种方法有用的是If-Match: "E_TAG"标题字段,但假设我表示文件结构中的条目,我将不得不以原子方式更新多个文件,这似乎是不可能的。

有没有办法通过谷歌驱动器来完成这个?我还搜索了在没有文件锁定的文件系统上工作的同步概念,但我也找不到任何东西。

4

1 回答 1

3

使用 Google Drive 一切皆有可能,但您需要使用可用的 Drive 原语构建您自己的所有同步逻辑。您还需要自己处理更新冲突解决方案。您将使用 etags 以及更改提要来执行此操作。但请注意,这不是微不足道的。

如果您不需要使用云端硬盘,那么 Firebase 可能是一个不错的选择。

于 2013-09-05T06:48:11.797 回答