我已经在S.O.上阅读了很多。关于离线(本地)存储和AngularFire,我知道AngularFire用于与Angular模型和DOM的3路绑定使用。
具体参考How to sync offline database with Firebase when device is online?我可以看到,将本地存储引入混合物并不是一件小事。我并不完全理解"启动"该线程中的Firebase。
但是,我确实需要能够在离线模式下启动应用程序。这是我的情景:
我知道Kato也提到过AngularFire的未来版本可能会有离线存储功能 - 这还有可能吗?否则我的想法就是这样做:
它并不是一种好方法,但我不知道其他任何方式。有没有办法直接将Firebase绑定到本地存储?
答案 0 :(得分:5)
我已经决定在这种情况下不使用AngularFire可能会更好,而是直接使用Firebase SDK。 AngularFire的3路绑定使得很难拦截$ scope更改以放入本地存储。直接使用SDK可以拦截FB更改并将其直接保存到本地存储以及更新$ scope。
同样,使用ref.update()对FB进行更改是微不足道的,可以与更新本地存储一起完成。
如果应用程序以离线模式启动(从.firebasio.com / .info / connected中检测到),那么只需使用本地存储,但也可以使用Kato建议" prime" Firebase连接。我通过简单地调用空白ref.update({});
来做到这一点。然后在更改本地存储中的数据时,还要运行正常的FB更新/推送/保存。然后当应用程序连接时,内存中的FB副本将与服务器同步。