javascript - 离线使用 Firebase Angular 应用程序

标签 javascript angularjs firebase angularfire

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

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

有什么建议吗?

最佳答案

使用$provide.decorator angular docs
$provide.decorator 的一个很好的用例是当你需要对你的模块所依赖的一些第三方/上游服务做一些小的“调整”,同时保持服务完好无损(因为你不是所有者/服务维护者)stackoverflow question .

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

这是我的 example使用angularfire用装饰器覆盖$add方法

here's the basic example装饰器

关于javascript - 离线使用 Firebase Angular 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31901526/

相关文章:

javascript - Chrome 扩展函数返回未定义的字符串

javascript - 如何为 angularjs 编写 'double' 和 'ntimes' 指令?

javascript - Bootstrap 滚动 spy 以及 Angular 自定义指令

ios - 提高 GeoFire 查询性能 - Firebase

swift - 您如何知道登录问题是模拟器造成的还是您的代码造成的?

javascript - 如何获取单元格中嵌入的文本框的值

c# - javascript 正则表达式的正则表达式

javascript - 自定义 $compile 指令仅有时适用于同一范围

ios - Firebase 3.6.0 (Auth) - 使用 Swift 3.0 检测特定错误

javascript - 删除 scala.js 中的事件监听器