写点什么

使用 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:412303
用户头像

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

关注

评论

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

【愚公系列】2022年7月 Go教学课程 013-常量、指针

愚公搬代码

7月月更

读书笔记之数据密集型应用的可维护性

宇宙之一粟

设计数据密集型应用 7月月更

Java中的设计模式

Java学术趴

7月日更

系统刷JavaScripit 构建前端体系(语法篇)

程序员海军

JavaScript 7月月更

RISC-V Linux 内核剖析 会议记录

贾献华

7月月更

Kubernetes网络插件详解- Flannel篇

巨子嘉

云计算 容器 云原生

使用Flutter开发小程序+App)的一种组合思路

Geek_99967b

小程序

VLAN再见,我选择用QinQ!1000字带你详细了解QinQ技术

wljslmz

VLAN 网络技术 7月月更 QinQ

zookeeper-集群和zab协议

zarmnosaj

7月月更

Prometheus 发布 LTS 长期支持版本啦

耳东@Erdong

release Prometheus 7月月更

Envoy监听管理

阿泽🧸

envoy 7月月更

Java核心技术之泛型详解

小明Java问道之路

Java 后端 泛型 Java泛型 7月月更

没有了可用Task slot,Flink新增任务会怎样?

程序员欣宸

Java flink 7月月更

Flink实战:消费Wikipedia实时消息

程序员欣宸

Java flink 7月月更

C#入门系列(二十五) -- 接口

陈言必行

7月月更

试着换个角度理解低代码平台设计的本质

pingan8787

Vue 前端 React 低代码平台

【MySql 实战】高度聚合的数据项拆分为多行多列

安逸的咸鱼

MySQL 实战 7月月更

学生思维VS职场思维

KEY.L

王者荣耀商城异地多活架构

Pengfei

数据平台的发展历程

奔向架构师

大数据 7月月更

汽车电子行业开发者的内功心法:汽车软件开发V模型(瀑布模型)

不脱发的程序猿

嵌入式开发 瀑布模型 汽车软件开发 V模型

python小知识-什么是上下文管理

AIWeker

Python python小知识 7月月更

qt 实现日历美化

小肉球

qt 7月月更

openharmony萌新贡献指南

坚果

开源 HarmonyOS OpenHarmony 7月月更

几种2022年流行的跨端技术方案的比较

Geek_99967b

小程序

MySQL的锁(一)

技术小生

MySQL 7月月更

手把手带你体验Python实现人脸识别

迷彩

人脸识别 7月月更

一篇文章带你快速学会Flex布局

bo

CSS 前端 Flex 7月月更

jQuery 请求

Jason199

jquery js post GET 7月月更

LeetCode-数组中数字出现的次数(单身狗问题)

芒果酱

c++ C语言 数据结构算法 Leet Code 7月月更

分享 15 个 Vue3 全家桶开发的避坑经验

pingan8787

Vue Vue3

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