Firebase 相关
谷歌在 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开发优秀APP、Firebase 验证入门、深入解析实时数据库。
查看英文原文:https://www.infoq.com/news/2016/05/google-firebase
前情
几天前翻译了一个有关Firebase的介绍IO的视频,在此写篇文章来总结一下
主讲人是James Tamplin,Firebase的联合创始人,本人很喜欢他的口音(捂脸XD)
 
热场
首先,他是讲述了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,所有翻译我都已经做好了,如果观看过程中发现不足,也欢迎指正
资源
参考
- Martin 20150817凌晨撰写
参考链接:
1.http://www.infoq.com/cn/news/2016/05/google-firebase
2.http://www.jianshu.com/p/f8657f391b93
Firebase 相关的更多相关文章
- 2016-Beijing-GDG-DevFest大会参后感
		前话 15年初的时候参加过一次GDG线下举办的一次分享会,因为当时是实习的公司提供的活动场地.有了那次机会后,就一直关注了GDG的活动. 参加的目的最重要的是本次大会是比较盛大的一场技术大会,在经过一 ... 
- Flutter 2.8 更新详解
		北半球的冬意已至,黄叶与气温均随风而落.年终的最后一个 Flutter 稳定版本 已悄然来到你的面前.让我们向 Flutter 2.8 打声招呼- 本次更新包含了 207 位贡献者和 178 位审核者 ... 
- 回顾 Flutter 2021 重要时刻,奉上虎年红包封面喜迎新年!
		2021 年,Flutter 正式进入 2.x 系列的正式版发布,年初的 Flutter 2 的发布 打开了一个新的"格局",为 Flutter 的加入了第五大特色--「可移植性」 ... 
- 抢先体验! 在浏览器里写 Flutter 是一种什么体验?
		Invertase 是一间位于英国的开源软件制作公司.主要构建关于开发者工具.SDK 等应用程序,早在 Flutter 2.2 的时候,Invertase 团队就开始帮助构建和贡献 Firebase ... 
- 嵌入式单片机STM32应用技术(课本)
		目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ... 
- Android  Firebase 服务简介
		Firebase初步了解 什么事Firebase?Firebase成立于2011年,在被Google收购之前,Firebase是一个协助开发者快速构建App,能够提供行动应用专用开发平台及SDK的一款 ... 
- Windows Azure NotificationHub+Firebase Cloud Message 实现消息推动(付源码)
		前期项目一直用的是Windows azure NotificationHub+Google Cloud Message 实现消息推送, 但是GCM google已经不再推荐使用,慢慢就不再维护了, 现 ... 
- Expo大作战(十六)--expo结合firebase 一个nosql数据库(本章令我惊讶但又失望!)
		简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ... 
- 孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录
		孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数 ... 
随机推荐
- SSL单向认证和双向认证原理
			注:本文为个人学习摘录,原文地址:http://edison0663.iteye.com/blog/996526 为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议.SSL ... 
- Infix expression 计算 without '(' and ')'
			#include<iostream> #include<stack> #include<string> using namespace std; char comp ... 
- GetLastError() 返回值含义
			[0]-操作成功完成.[1]-功能错误.[2]-系统找不到指定的文件.[3]-系统找不到指定的路径.[4]-系统无法打开文件.[5]-拒绝访问.[6]-句柄无效.[7]-存储控制块被损坏.[8]-存储 ... 
- Openjudge-计算概论(A)-找和为K的两个元素
			描述: 在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k. 输入第一行输入序列的长度n和k,用空格分开.第二行输入序列中的n个整数,用空格分开.输出如果存在某两个元 ... 
- 【Office Web Apps】在 SharePoint 中使用 Office Web Apps
			在 SharePoint 中使用 Office Web Apps 在安装并配置了 Microsoft Office Web Apps 的 SharePoint 网站上,通过 Office Web Ap ... 
- E - 小晴天老师系列——我有一个数列!
			E - 小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/O ... 
- pt-heartbeat监控延时
			测试国内主机到国外主机mysql的延时 主机 perl /usr/bin/pt-heartbeat -uroot --ask-pass -D uk --create-table --update ... 
- Oracle Day01 数据库基础
			1.数据库 它是一种软件产品,是用于存放数据.管理数据的存储仓库,是有效组织在一起的数据集合. 2.数据库和数据库对象的概念 数据库:指的是物理磁盘上的文件 数据库对象:存在于内存中用于跟数据库文件进 ... 
- GitHub上有很多不错的iOS开源项目
			GitHub上有很多不错的iOS开源项目,个人认为不错的,有这么几个:1. ReactiveCocoa:ReactiveCocoa/ReactiveCocoa · GitHub:GitHub自家的函数 ... 
- 【第一篇】学习 android 事件总线androidEventbus之sticky事件的传递
			最近再看eventbus相关代码,首先从使用开始,后期再从源码角度分析eventbus.使用Demo后期公布到github上去. 使用的框架地址:https://github.com/bboyfeiy ... 
