使用 Firebase 创建 Nobackend 应用程序

阅读数:1379 2013 年 9 月 16 日

话题:RESTJavaScript移动架构

Nobackend 的意思不是没有后端,而是对开发人员隐藏了后端基础结构,所有的功能都是由框架、库或是服务提供。

Firebase为 Web 和移动应用程序提供了一个透明的后端,其目的是为开发人员减少与数据传输、存储和设备间同步相关的麻烦。应用程序需要引用一个 20KB 大小的 JavaScript 库,它可以得到一个 JSON 数据树的句柄。在往树上添加数据或修改树上原有数据时,该库会自动将数据与 Firebase 后端服务器同步,并用新值更新所有相关设备。根据网速的不同,将变更从一台设备传送到其它设备需要花费 100 毫秒左右或更少的时间。当网络断开时,Firebase 将数据变更保存在本地,待网络连接恢复后再进行同步。我们问 Firebase 的共同创始人和首席技术官 Andrew Lee,他们的服务器使用了什么样的基础结构,但是他不想对此作出说明。

Firebase 支持所有主要的桌面浏览器,包括 IE7+、Firefox 3+、Chrome、Safari 和 Opera,它还支持用于 iOS 和 Android 的移动浏览器,不过,它也可以使用 Node.js 或者 Java 运行在服务器上。该库带来了REST API及相应的 Java、Python、PHP、Ruby 和 Clojure 库。

Firebase 目前可以处理字符串、数值、布尔值和对象,它可以嵌套包含更多的字符串、数值、布尔值和其它对象。我们还想知道数据存储的内部结构,但 Lee 没有透漏其中的细节。但他还是为读者解答了其它问题:

Dropbox 的数据存储 API允许开发人员查询存储,而 Firebase 的查询能力有限。你们是否有这方面的改进计划呢?

是的,我们有计划!我们已经有一些这方面的功能(你可以基于单一的“优先级”设定查询窗口和限制查询结果,该优先级实际上是个索引)。与数据存储 API 相比,Firebase 有两大优势:(1)它可以用于在多个用户间共享数据;(2)它可以扩展到非常大的尺寸。数据存储 API 只用于在单个用户的多个设备之间共享数据,而且只支持一个非常小的数据集(最大 10MB)。

您可以告诉我们一点有关在服务器端使用 Firebase 的信息吗?

在服务器端,我们支持 Node.js 和 Java。API 的工作方式与在客户端一样——你可以同步和修改共享的 JSON 对象。我们的许多大客户在生产环境中使用了服务器端的 JS 客户端。

那些想在自己的服务器上运行 Firebase 的企业,能获得许可吗?

我们会乐于在“个别客户(customer-by-customer)”路线图上讨论这一问题。

你们的路线图是什么?

有很多内容!支持更多的平台(下一个可能是 C#)、更快的同步速度、改进 Forge 和其它工具、更好的教程和文档,以及功能更强大的 API!

数据安全通过用户身份验证来确保,安全规则确定了已验证用户可以如何修改数据,所有的传输都是通过 SSL 完成。

当涉及额外的数据计算需求时,使用 Firebase 创建的应用程序可以与运行在云上或开发商服务器上的其它服务集成。

Firebase 上个月结束了 beta 测试,其定价计划包含了一个免费的开发版、四个具有不同标准的数据传输和存储限制的生产版以及一个针对每种情况进行协商确定的企业版。

查看英文原文:Creating Nobackend Applications with Firebase