热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

是否可以将Firebase绑定到本地存储?

如何解决《是否可以将Firebase绑定到本地存储?》经验,为你挑选了1个好方法。

我一直在阅读关于离线(本地)存储和AngularFire的SO,我知道AngularFire用于与Angular模型和DOM的3路绑定使用.

具体参考如何在设备联机时将脱机数据库与Firebase同步?我可以看到,将本地存储引入混合中并不是一件小事.我不太明白在该线程中"启动"Firebase的概念.

但是,我确实需要能够在离线模式下启动应用程序.这是我的情景:

    我正在构建一个访客列表应用程序,它可以在多个设备上同时运行,使用Firebase作为访客列表的后端存储.

    如果设备检查了guest虚拟机,它会传播到FB,从而传播到其他设备.它应该在本地存储中保留访客列表的最新副本.

    在我居住的地方,3G覆盖是一个重大问题,因此有人可能会在连接时加载应用程序,关闭它,移动到另一个位置,然后在没有信号时尝试打开应用程序.

    在这种情况下,应用程序应使用本地存储客户列表.

    当设备再次联机时,请连接到Firebase并将本地存储更改上载到Firebase.

我知道Kato还提到在AngularFire的未来版本中可能会有离线存储功能 - 这是否还有可能?否则我的想法是这样做:

    假设应用程序已在脱机模式下启动,则每次签入guest虚拟机时,都会更新本地存储.还要跟踪本地存储中的更改"已更改"变量.

    当/如果设备重新联机时,请使用AngularFire将Firebase guestlist列入$ scope.guestList变量.

    循环遍历本地存储"所做的更改"列表,并将这些更改发送到$ scope.guestList var.

它不是一种好方法,但我不知道其他任何方式.有没有办法直接将Firebase绑定到本地存储?



1> quijames..:

我已经决定在这种情况下不使用AngularFire可能会更好,而是直接使用Firebase SDK.AngularFire的3路绑定使得很难拦截$ scope更改以放入本地存储.直接使用SDK可以拦截FB更改并将其直接保存到本地存储以及更新$ scope.

同样,使用ref.update()对FB进行更改是微不足道的,可以与更新本地存储一起完成.

如果应用程序以脱机模式启动(从.firebasio.com/.info/connected中检测到),则只需使用本地存储,但也可以使用Kato建议"启动"Firebase连接.我这样做只需要一个空白ref.update({});.然后在更改本地存储中的数据时,还要运行正常的FB更新/推送/保存.然后,当应用程序连接时,内存中的FB副本将与服务器同步.


推荐阅读
author-avatar
广药中山校区艺术团啦啦队
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有