QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

使用 Firebase 创建 Nobackend 应用程序

  • 2013-09-16
  • 本文字数:1225 字

    阅读完需:约 4 分钟

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

2013-09-16 07:412450
用户头像

发布了 256 篇内容, 共 87.7 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

现在啥软件都有开源,BI 呢?干货推荐

jiangxl

面试官:说说React-SSR的原理

beifeng1996

React

智慧城市交通 Sovit3D打造智慧交通可视化决策系统

数据可视化平台

物联网 智慧交通 三维可视化 智慧城市交通 城市交通系统

实时营销引擎在vivo营销自动化中的实践 | 引擎篇04

vivo互联网技术

服务器 架构设计 引擎

详解数仓的锁相关参数及视图

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

结构化克隆:浏览器的序列化机制

水鱼兄

全球第一!新一代云原生实时数仓 SelectDB 登顶 ClickBench 榜单!

SelectDB

性能测试 Clickhouse 分析型数据库 数仓 SelectDB

JS模块化—CJS&AMD&CMD&ES6-前端面试知识点查漏补缺

loveX001

JavaScript

假如面试官问你Babel的原理该怎么回答

loveX001

JavaScript

Python进阶(九)Python陷阱:Nonetype

No Silver Bullet

Python 10月月更 Nonetype 实例定义方法

Qt | 实现自定义验证码输入框控件

YOLO.

qt 10月月更 C++

找到字符串中所有字母异位词

掘金安东尼

算法 10月月更

【LeetCode】滑动窗口的最大值Java题解

Albert

LeetCode 10月月更

HTML标准第二章总结:HTML的基础设施

水鱼兄

crossorigin属性:为什么它是避免tainted canvases的关键?

水鱼兄

一文读懂web标准的基石:web IDL

水鱼兄

Qt | 深入了解Qt的视图类

YOLO.

qt 10月月更 C++

Mybatis批量插入数据

源字节1号

软件开发 后端开发

2022云栖大会|EMAS专项嘉宾领票通道现已开启

移动研发平台EMAS

云计算 阿里云 低代码 云栖大会 行业峰会

Linux策略路由详解

京东科技开发者

数据库 Linux 公有云 云主机 策略路由

以整数解析为例,如何读懂标准里的算法?

水鱼兄

聊聊面试中的过滤器与拦截器

TimeFriends

一次性学懂Excel中的Power Query和Power Pivot使用

博文视点Broadview

手写一个Redux,深入理解其原理-面试进阶

beifeng1996

React

一次磁盘占用率 100% 的排查记录

悟空聊架构

Docker 磁盘 悟空聊架构

开发者 J 有意思|1024 开发者嘉年华活动正式启幕

Jina AI

人工智能 开源 开发者 工程师 1024

Python进阶(八)编写带参数decorator

No Silver Bullet

Python 10月月更 decorator

Java中的常量和变量

共饮一杯无

Java 10月月更 常量与变量

Java的八种基本数据类型

共饮一杯无

Java 基本数据类型 10月月更

说说React-Router底层实现?-面试进阶

beifeng1996

React

问:你是如何进行react状态管理方案选择的?

beifeng1996

React

使用Firebase创建Nobackend应用程序_REST_Abel Avram_InfoQ精选文章