首先,简单明了:
有 2 个 API,REST Api (v2, v3) 和 GDAA。两者都会为您提供至少 CRUD 功能(请参阅 here 和 here)。如果您使用REST Api,您将获得更多低级功能,但您必须处理网络问题(同步服务?)。 GDAA 会处理这个问题(在线/离线状态等)。
现在,不是那么容易的部分,如何同步:
REST Api 有一个内置功能,Push Notifications,所以它看起来像个赢家。直到您意识到您必须提供一个服务器来处理通知并将其(通过 GCM?)发送到您的 Android 应用程序。如果添加处理网络状态的需求,REST Api Push Notifications 肯定需要大量的胆量来实现。
根据我的“玩弄”,迄今为止最优雅的方法是将 GDAA 与 Firebase 结合使用。 GDAA 处理 CRUD,Firebase 进行通信。
这是一个原始算法:
适用于 GDAA 下的安卓设备
1/ Android app创建文件,接收completion notification with ResourceId
2/ 将 ResourceId 添加到 Firebase
3/ 每个 Firebase 参与者都会收到通知
或用于 REST 或其他实体(web、ios)下的 Android 应用
1/ 应用程序(REST、web、ios)创建一个产生 ResourceId 的文件
2/ 将文件的 ResourceId 添加到 Firebase
3/ 每个 Firebase 参与者都会收到通知
GDAA 对我有用,因为两个“更新程序”都是同一个 Android 应用(基本上是在设备之间同步同一个应用的数据)。不幸的是,由于 GDAA 不支持 DRIVE 范围,它不会看到由“其他实体”创建的文件,因此您仍然可以考虑使用“REST+Firebase”解决方案。
请注意:
小心带宽/电池消耗。每当您接触 Firebase 更新方法时,都会有即时网络流量导致 battery drain,从而破坏 GDAA 为将其最小化所做的工作。
祝你好运