我正在设计一个用于数据收集的 Android 应用程序,该应用程序预计将用于网络覆盖范围不广的户外区域,因此客户端到服务器消息传递的稳健性很重要。如果用户尝试提交某些内容但请求失败或没有网络,则应用程序需要记住这一点并稍后再试,无论是按需还是在连接恢复时。
我们正在考虑将 Firebase 用于我们的数据模型,但也想评估更传统的服务器/数据库/API 解决方案。Firebase 的一大优势是它们通过客户端 SDK 提供的“离线”支持:
无论网络延迟或互联网连接如何,您的 Firebase 应用都将保持响应。在任何数据写入服务器之前,对 Firebase 数据库的所有写入都会立即触发本地事件。一旦重新建立连接,客户端将接收它错过的任何更改,并将其与当前服务器状态同步。
如果我们使用 Firebase,免费获得它是很棒的。或者,什么会给我类似的客户端功能来支持典型的 RESTful API?最好是某种可以为我处理状态而不是跟踪个人尝试的库。
我已经研究过像 SymmetricDS 这样的离线数据库同步解决方案,但在这种情况下这似乎有点过头了。事实上,我宁愿客户端没有直接的数据库访问权限。从应用程序发送的消息将是独立条目,如照片或评论,不需要执行复杂的查询、同步写入等。我只需要确保用户提交的任何内容最终都会发送到服务器一旦连接恢复,并确认它已经恢复。