使用google驱动器同步数据库

时间:2013-09-05 00:48:11

标签: google-drive-api

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

以下列出了我需要的东西:

  • 数据以类似数据库的方案保存(每个条目一行)
  • 由于当前的修改,不应该失去任何改变
  • 与未更改的数据(需要增量更新)相比,更改非常小
  • 如果devies未连接到Google驱动器,则会更改数据迁移
  • 带宽很重要(同步整个事情是不可能的。但是大块的是)
  • 可以添加,修改和删除条目(也可以通过删除条目的内容来完成)
  • 参赛作品相当小(~2kb)

我知道Google驱动器不是一个数据库,因此我正在寻找一种解决方案,它仍然可以在没有任何其他服务器的情况下实现这种情况。我知道可能没有解决方案,但在我放弃这个想法之前我想确定。

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

有没有办法通过谷歌硬盘实现这一目标?我还搜索了正在处理文件系统的同步概念,这些文件系统没有文件锁定但我找不到任何东西。

1 个答案:

答案 0 :(得分:3)

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

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