谷歌在 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