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开发优秀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,所有翻译我都已经做好了,如果观看过程中发现不足,也欢迎指正


资源


参考

  • Martin 20150817凌晨撰写

参考链接:

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

2.http://www.jianshu.com/p/f8657f391b93

时间: 2024-08-11 20:32:19

Firebase 相关的相关文章

【HH原创】Firebase 相关操作及代码示例

今天需要对 Firebase 增加删除功能,代码精简如下: 1 var admin = require('firebase-admin'); 2 var config = require('./config.json'); 3 4 var defaultAppConfig = { 5 credential: admin.credential.cert(config.firebase.cert), 6 databaseURL: config.firebase.databaseURL 7 }; 8

孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录

(完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服务,今天主要尝试使用firebase_admin模块来连接firebase数据库. 获得成功. 一.简单总结下今天对firebase_admin模块对象的学习 (一)要通过firebase_admin模块连接到firebase数据库,那么必须要拥有一个从firebase网站上自己的数据库的[用户和权限]处设置的'连接私钥'等相关信息的一个json文件,并下载到项目文件夹中来. (二)

【Windows10 IoT开发系列】PowerShell的相关配置

原文:[Windows10 IoT开发系列]PowerShell的相关配置 可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备.PowerShell 是基于任务的命令行 Shell 和脚本语言,专为进行系统管理而设计. 1.​启动 PowerShell (PS) 会话 注:若要使用装有Windows10 IoT Core设备启动PS会话,首先需要在主机电脑与设备之间创建信任关系. ​启动 Windows IoT 核心版设备后,与该设备相连的

微信小程序--图片相关问题合辑

图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.previewImage预览图片 微信小程序之预览图片 小程序开发:上传图片到腾讯云 .NET开发微信小程序-上传图片到服务器 微信小程序本地图片处理--按屏幕尺寸插入图片 [微信小程序]上传图片到阿里云OSS Python Flask小程序文件(图片)上传技巧 小程序图片上传阿里OSS使用方法 微信小程序问题汇

Android studio界面相关设置

Android studio界面相关设置 原文出自 http://www.cnblogs.com/justinzhang/p/4274839.html 用惯了emacs的操作方式,每当使用一款新的编辑器的时候,第一个想到的就是这个工具有没有emacs的快捷键,Android studio也是一样的. 1. Android studio设置emacs的方式如下,点击File->Settings 选择其中的keymap,在keymap中选择emacs,这样就成功的设置好了emacs的操作模式: 2.

25个Linux相关的网站【转】

转自:http://www.cnblogs.com/Lindaman/p/4552805.html 下面是25个最具有影响力,也是最重要的Linux网站,这些网站提供了Linux的分发包,软件,文件,新闻,以及其它所有的关于Linux的东西.关于Linux的分发包历史,可以看看本站的这篇文章<Linux Distribution Timeline> 1. Linux.org 这个站点主要提供Linux相关的新闻.文档.教程,培训,以及其它一切和Linux相关的东西.这是你需要了解Linux开源

Halcon学习之二:摄像头获取图像和相关参数

1.close_all_framegrabbers ( : : : ) 关闭所有图像采集设备. 2.close_framegrabber ( : : AcqHandle : ) 关闭Handle为AcqHandle的图像采集设备. 3.open_framegrabber ( : : Name, HorizontalResolution, VerticalResolution, ImageWidth, ImageHeight, StartRow, StartColumn, Field, BitsP

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

记5.28大促压测的性能优化&mdash;线程池相关问题

目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下. 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C.UGC.直播等).平台中核心之一的就是订单域相关服务,下单服务.查单服务.支付回调服务,当然结算页暂时还是我们负责,结算页负责承上启下进行下单.结算.跳支付中心.每次业务方进行大促期间平台都要进行一次常规压测,做到心里