脱机使用Firebase Angular应用程序

Fra*_*o S 9 javascript angularjs firebase angularfire

我目前正在使用Firebase和AngularFire构建一个Angular 1.x应用程序作为我的后端/服务器.由于应用程序/网站针对移动设备进行了优化,并且在将其添加到主页时非常适合作为应用程序使用,因此我想知道即使手机处于脱机状态,如何让用户使用它.

在网上搜索,我发现Firebase为Android Java的对应物提供了keepSynced(true),但是我无法为js找到这样的选项.然后,我使用HTML5的localStorage和基于上次更改时间的同步进行手动方法,但由于我使用了一些AngularFire的方便命令(例如$ save),我的大部分代码都被破坏了.

有什么建议吗?

Med*_*uly 2

使用$provide.decorator 角度文档
$provide.decorator 的一个很好的用例是当您需要对模块所依赖的某些第三方/上游服务进行较小的“调整”,同时保持服务完好无损(因为您不是所有者/服务的维护者)stackoverflow 问题

基本上,您可以检查navigator.onLine === true装饰器内部是否存在(或使用任何其他方法来检测对 firebase 的请求是否会失败),然后根据您的需要重写 angularFire 的一些方法(写入 localStorage 而不是发送实际的 angularFire 请求)

这是我使用带有装饰器的AngularFire 重写方法的示例$add

这是装饰器的基本示例