Angularjs 离线火基

Angularjs 离线火基,angularjs,couchdb,firebase,offline-caching,pouchdb,Angularjs,Couchdb,Firebase,Offline Caching,Pouchdb,我正在使用Firebase作为后端实现AngularJS web应用程序;它也应该离线工作;多用户同步问题应该是非常有限的,因为应用程序(按设计)只允许在脱机时输入新数据 我知道Firebase具有离线功能,从某种意义上说,客户端可以承受暂时的网络连接故障:任何写入操作都将被延迟并缓存,直到网络再次启动 我询问是否存在扩展Firebase脱机功能的可能性(或是否有任何计划实施该功能),以使客户端能够在服务器上本地缓存(部分)数据的快照,从而能够为客户端提供完整的脱机体验,并提供读操作 我看到一个

我正在使用Firebase作为后端实现AngularJS web应用程序;它也应该离线工作;多用户同步问题应该是非常有限的,因为应用程序(按设计)只允许在脱机时输入新数据

我知道Firebase具有离线功能,从某种意义上说,客户端可以承受暂时的网络连接故障:任何写入操作都将被延迟并缓存,直到网络再次启动

我询问是否存在扩展Firebase脱机功能的可能性(或是否有任何计划实施该功能),以使客户端能够在服务器上本地缓存(部分)数据的快照,从而能够为客户端提供完整的脱机体验,并提供读操作

我看到一个存在,但它的文档是相当“有限的”(善良的…:-)。应首选本机解决方案

更新:在Frank van Puffelen发表评论后,我最好限定我的问题:


*Firebase是否在其Web API中本机支持离线数据访问,或者很快会支持离线数据访问?*

根据Firebase文档,它确实:

从网站: Firebase提供了一些简单的原语,允许在客户端与Firebase服务器断开连接时写入数据。无论客户端是否干净地断开连接,这些更新都会发生,因此即使连接断开或客户端崩溃,我们也可以依靠它们来清理数据。断开连接后,可以执行所有Firebase写入操作,包括设置、更新和删除

我对这个问题的解释有误吗

我差点删除了我的帖子,但当我点击OP提供的链接时,我看到第三方软件包的功能与Firebase本身完全相同,可能是在Firebase改进同步之前完成的


当我删除帖子时,我认为OP可能只需要一组选择性的数据,而不是FB在恢复连接之前本地存储的“活动数据”

Firebase的另一种解决JS应用程序此问题的方法是
CouchDb(服务器)PockDB(JS客户端)
。如果你已经为你的AngularJS应用程序实现了一个干净的服务层,那么移植到PockDB应该相当简单,因为两者都是
NoSQL/JSON
数据库

PockDB是一个Javascript API,它实现了一个完全离线的CouchDb客户端。它可以自动检测并使用
\u本地存储
\u索引数据库
\u WebSQL
在联机或脱机时永久保存本地数据。PockDB API可用于访问本地或远程数据库(只需更改URL),并在两者之间连接完全同步或过滤同步。有许多有用的PockDB插件、代码示例和一个小型包装器库来支持AngularJS的Q promises API

使用PockDB,您可以在脱机时安全地启动应用程序,几天后重新启动应用程序,并将所有CUD数据更改同步到服务器。这可能会导致更新冲突,因此CouchDb支持记录版本控制,该版本控制旨在检测和跟踪此情况。因此,您可能需要服务器端逻辑来解决这些冲突。对于具有离线同步和CouchDb关键功能的分布式系统来说,这是不可避免的(不完全正确…请参阅注释)

PockDB基本上是ApacheCouchDB的重新实现,包括它的高效同步协议。CouchDb和PockDB都是经过良好测试的免费开源数据库。开源意味着CouchDb服务器也可以作为内部网服务部署——可以选择同步到外部云服务。有许多CouchDb托管提供商

Cloudant托管团队最近将他们的BigCoach群集功能添加到Apache CouchDb 2.0项目中,因此现在您可以从Micro Db(PockDB)=>单服务器=>多主机(复制)=>Big Coach群集/地理群集进行扩展。与MongoDb不同,CouchDb安全地支持单服务器部署

注意:PouchDb也可以使用相同的协议同步到CouchBase,但CouchBase!==CouchDb。这是一种商业产品

  • 用于移动或网络应用程序
链接:
    • -免费书籍
CouchDb主持人:
自己动手做
Docker+CouchDb:
卡车装载的插件 PockDB有许多扩展点和不断增长的插件列表(上次统计为37个):

安全模型 当迁移到CouCHDB时,需要考虑的一个问题是,它具有更为有限的访问控制模型。这部分是由于它的复制算法。这篇博文详细介绍了这一点(比真正的权威指南更好)

  • -和基于的身份验证API,以使用OAuth2或本地注册/登录CouchDb服务器。可选的和一个不错的。在通过PassportJS(支持300多个身份验证插件)进行身份验证后,用每个登录会话(如身份验证令牌)随机生成的用户名和密码替换CouchDb中较弱的基本身份验证

您的问题也是:Firebase是否在其Web API中本机支持脱机数据访问?因为如果是的话,答案是“不”,是的。更准确地说,它是:“Firebase是否在其Web API中本机支持脱机数据访问,还是很快就会支持?”在可预见的未来,脱机持久性将在Android和Web上发布。我们的意图非常明确:尽快推出离线持久性。这是我们目前的首要任务,预计明年某个时候会成为目标。我再具体不过了,因为我们的内部路线图由大量的政策和人员管理,邮件列表上或这里的问题也不会更快地解决。@Kato你能在下面做出真实的回答吗?现在这个星期