您的位置:首页 > 其它

Firebase 相关

2016-07-13 11:55 190 查看
谷歌在 2016年 I/O 大会上推出了 Firebase 的新版本。Firebase 平台提供了为移动端(iOS和Android)和 Web 端创建后端架构的完整解决方案。

从一开始的移动后端即服务(Mobile-Back-end-as-a-Service,简称 MBaas),Firebase 已经被谷歌改造成了针对移动开发和 Web 开发的一个完整后端解决方案。Firebase 提供了一个 SDK 和 一个控制台,用于创建和管理 Android、iOS和 Web 等多个平台的应用。Firebase 拥有以下特性:

AdMob —— 集成了谷歌 AdMob

AdWords —— 集成了谷歌 AdWords

统计分析(Analytics) —— 用于监控用户行为、人群特征细分、活动效果分析

崩溃报告(Crash Reporting) —— 监控各类设备上应用的错误。与统计分析特性集成,评估应用崩溃时的用户行为

数据库 —— 用于存储 JSON 数据的 NoSQL 数据库

动态链接(Dynamic Links) —— 将用户带至应用内预期页面的深度链接(deep links)

托管(Hosting) —— 针对 Web 应用的全球 CDN

索引(Indexing) —— 对应用进行索引,用于谷歌搜索

邀请(Invites) —— 支持用户与其他用户分享有关应用的信息

消息(Messaging) —— 即此前的 Google Cloud Messaging,后来被重新命名为 Firebase Cloud Messaging

通知(Notifications) —— 管理发给用户的通知

离线(Offline) —— 支持应用在本地缓存中存储数据,这样可以在离线时保持运行

实时(Real Time) —— 数据实时保存至云数据库

远程配置(Remote Config) —— 支持开发者在不要求用户下载新版本 app 的情况下,修改应用的行为和外观。该特性用于修改应用的视觉主题,满足不同用户群组的需求,运行 A/B 测试等。

存储(Storage) —— 存储用户的语音、图片和视频

同步(Synchronization) —— 当设备上的数据变动时,将会推送至 Firebase,然后再推回到所有相关联的设备。另外,离线后重新在线使用时,设备将自动更新至最近的快照

测试实验室(Test Lab) —— 在真实设备上测试应用

以上所有特性在进行 Android 和 iOS 开发时均可使用,除了测试实验室不支持 iOS 设备。部分特性尚不支持 Web 应用。

Firebase SDK 支持以 C++、Java、JavaScript、JavaScript/Node.js、Objective-C 和 Swift 等语言进行编程。对 Angular、Backbone、Ember 和 React 的支持通过对数据库的绑定实现。谷歌提供了一些辅助开发库:Firebase UI、Geofire、Firebase Queue、FirebaseJobDispatcher。这些库的名称说明了各自的用途。Firebase 还支持导入大规模 JSON 数据集,可与 ElasticSearch 集成。

Firebase 由谷歌维护,托管在其云数据中心。对于想体验的用户,FIrebase 提供了免费的计划。同时提供了一个按需付费计划,提供与谷歌云平台的全面集成。

如果你想深入了解 Firebase 的运作,我们建议观看谷歌 2016 I/O 大会上的这些视频:Firebase 概览迁移至 Firebase使用 Firebase Analytics开发优秀APPFirebase 验证入门深入解析实时数据库

查看英文原文:https://www.infoq.com/news/2016/05/google-firebase

前情

几天前翻译了一个有关Firebase的介绍IO的视频,在此写篇文章来总结一下

主讲人是James Tamplin,Firebase的联合创始人,本人很喜欢他的口音(捂脸XD)



James Tamplin

热场

首先,他是讲述了10年前笨重的软件开发过程,于是引出了Firebase的目的和他们的关注点

接着,他引出的Firebase很重要的三个关注点
用户
数据
任务


那么谷歌是如何做的呢?


首先要从
谷歌云服务平台(Google Cloud Platform)
开始

它的最底层是基础设施层,也就是
谷歌计算引擎(Google Compute Engine GCE)
,它使物理机器呈现出虚拟形态

接下来是容器层,也就是
谷歌容器引擎(Google Container Engine GKE)
,它使你可以运行软件而不用考虑底层的硬件

再上一层就是平台层,也就是
谷歌应用引擎(Google App Engine GAE)
,有了它你就可以不用考虑内存、CPU和系统更新,你只需要给它后端代码,它就可以接收、部署、运行并处理,这让一切变得更高效



层级展示

主题

那么如果你是个移动端或者Web开发者呢?


那就该Firebase出场了

那么到底什么是Firebase?


简而言之它就是一个帮助你快速开发高效的移动和Web应用的平台

而我认为它是结合了后端和数据库,使原来的三层结构变成了两层结构,也就是一体化后端框架,使开发变得更加快捷



三层结构

Device-->Application Server-->Database



两层结构

Device-->Firebase(Hook Server or Third part API)

它有三大功能:
用户认证
实时数据库
托管服务


用户认证:如果你构建一个APP,那么你要做一个用户认证系统,而Firebase允许你用Email和密码连接到第三方,例如Facebook,Twitter等等。你所要做的就是使用一个服务端的库来生成JSON Web标记和另一个开放标准,这样你就可以告诉Firebase谁是你的用户了

实时数据库:Firebase用的是一个实时的NoSQL的JSON数据库,所有的数据都以JSON的形式存在于数据库里面,并且它们还为每个键值做映射(mapping),它可以实现毫秒级的数据推送。还有一点就是客户端可以不和服务器交流直接去访问数据库



数据同步

托管服务:很典型的例子就是英国大选的时候,Sky News利用Firebase来同步大选的数据,这个应用每天都有几百万的访问量,而Firebase就得托管这些数据并同步给几百万的用户,更激动人心的是这个应用在数周之内就被开发出来并投入使用

新功能

手机离线支持(Mobile Offine Support)

所有数据都会存在于你的磁盘上,而不仅仅是内存

当你离线时,你的所有数据都会尽量保持最新

当网络重新连接时,应用会马上进行重新同步,使你的数据保持最新

当你重新开启应用时所有东西都会还原

支持React Native(React Native Support)

React Native是Facebook的一个开源库,并且Facebook有团队正在使用它

而Firebase则是驱动React Native的后端,并可以完美协作

React会在你的数据模型发生改变时更改你的UI,而Firebase则负责实时更新

总结

Firebase给我最深的印象就是整合了后端框架,这大大改变了原有了软件过程

以往软件开发是先要设计一个数据库,然后再搭一个服务器,最后在应用端进行开发

现在是你启动一个Firebase项目,挂上服务器,有必要还可以挂上第三方API,然后就可以进行开发了

你只需要向Firebase抛后端代码,它就可以自动处理并返回你想要的数据

James Tamplin讲述了很多快速开发的例子,在此我就不一一举例了

如果有兴趣的童鞋,可以点击下面的链接来下载或者在线观看James Tamplin的演讲

Don't Worry,所有翻译我都已经做好了,如果观看过程中发现不足,也欢迎指正

资源

Trello 任务面板

参考

Martin 20150817凌晨撰写

参考链接:

1.http://www.infoq.com/cn/news/2016/05/google-firebase

2.http://www.jianshu.com/p/f8657f391b93
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: