為什麼Firebase這麼紅?從它解決什麼問題開始

作者 | 2017-07-18

今年5月的Google IO 17可說是AI與Firebase的舞台,光是與Firebase有關就有三十幾個場次,不論是介紹、討論、應用等,Firebase能成為聚光燈的焦點是有其原因的,本文章從它解決什麼問題開始。

資料儲存

不論是Web網頁、iOS或Android手機,一個較有功能性的應用程式(APP)都需要儲存資料,聊天的APP需要儲存會員資料與訊息,討論型的網站需要儲存會員與文章、回應等資料,遊戲需要會員與關卡、城鎮等地圖資料,點餐APP需要儲存餐點、價格、顧客與訂單等資料,這些資料都需要儲存在「資料庫」中。

儲存在那裏?

如果是私人資料,如記帳、餵食時間、約會等,可以儲存在手機內APP專用的資料庫,大都使用SQLite嵌入式資料庫,方便又直接。如果資料有「變動」需求,那就需要一台伺服器(Server),並在這台Server中安裝資料庫管理系統(DBMS),再將資料儲存在伺服器中,例如餐廳的菜單、網站文章、購物網站的商品、全台灣的美食地點等。

如何存取?

不論是讀取或儲存,想從伺服器內的DBMS中讀取資料到手機上展示,或是將使用者輸入或選擇的資料儲存到DBMS中都是累人的事情,因為安全考量,我們不會讓手機直接存取資料庫(如果被反組譯,資料庫的帳號/密碼與資料結構曝露風險),而是透過中介的AP應用程式(Application Layer,或簡稱後台程式),設計在伺服器中執行並負責存取的程式後,再由AP層與APP手機端互動後得到或傳遞資料。中介的AP層可使用Node.js、JEE、ASP.NET、PHP等技術來開發這些應用程式,在這些AP端的程式中設計能確保存取權限與資料安全的機制。

如何傳遞?

手機APP與AP應用程式之間大多透過HTTP、HTTPS通訊協定,再以JSON資料格式傳遞資料,例如點餐APP一開始以HTTP加參數方式送出要求(Request)封包到Server,在Server中執行的AP應用程式再到DBMS中讀取餐點資料後,將資料轉成JSON格式後,透過回應(Response)封包將資料傳回手機端,手機APP再解析JSON資料後,設計清單元件展示資料的方法。

如何推播訊息?

如果功能中包含主動訊息推播,也一定要準備伺服器、申請憑證、開發後端設備Token(ID)的儲存,發送推播訊息的後台程式。

成本問題

每個專案都會考慮成本因素,包括人力成本、設備成本、維護成本與開發成本等,若以一般方式開發網頁、手機APP專案時:

人力成本

開發前端需要Android、iOS人力成本,開發後台需要PHP或ASP.NET的人力成本,架設伺服器需要系統工程人員,資料庫也同樣需要設計資料庫表格、View、Trigger與預儲程序等人力。

設備成本

準備伺服器、作業系統、資料庫管理系統都是很高的成本。

維護成本

要能維持Android、iOS、後台程式與系統工程人員都能更新、修改這個專案的變動成本。

Firebase解決什麼問題?

【影片】為什麼使用Firebase? 它能解決目前開發的那些問題與工作?

會員系統

提供完整的API,不論是Web、Android或iOS都能快速支援手機中的Email/密碼、Google、Facebook、Twitter、Github等帳號登入,日前更加入電話號碼簡訊驗證,快速成為APP專屬會員。

讓APP能以手機號碼註冊成為會員,使用Firebase 2017的Phone簡訊驗證

使用者註冊成功發送通知郵件,透過Firebase Functions只要十幾行code

資料儲存

將使用者的資料,如匿稱、消費記錄、商品、位置、喜好等儲存在雲端資料庫。

使用Android Studio 2.2.2 開發Firebase – Database篇

Android Studio 2.2.3開發Firebase的CRUD (上)

在Android Studio中使用2017新版Firebase加快開發過程之[雲端資料庫]

雲端訊息推播

Firebase Cloud Messaging是Google最新一代雲端推播,更快速能在應用程式中導入推播功能。

Firebase雲端訊息-Android專案導入環境建置與Instance ID

雲端檔案儲存

傳統需開發一堆後台的接收、轉存、權限、URL檔案網址等都在API的幫助下,幾行程式就能快速完成功能。

[影片] Android Studio與Firebase實作類似Instagram功能,上傳手機照片至雲端(Android 6.0)

使用Firebase與Glide實作「最新消息」清單,圖檔取得及顯示

Cloud Functions

對於No-SQL的資料庫(JSON tree)很頭痛嗎? 有最厲害的幫手,除了能監控Realtime database中的資料並設計程式外,更能快速開發出自動推播、帳號處理等原本後台功能,現在只需使用node.js,馬上變身成為可隨時擴充的雲端後台管理系統。

使用Firebase Functions前的環境準備與開發工具安裝,Serverless真的來了

使用Firebase Functions設計隨時傾聽資料新增的function,並自動建立特定資料

使用Firebase Functions的HTTP Triggers設計簡易的Android網路登入驗證功能,連PHP、ASP、Servlet都不用了

Hosting

寫了如版權宣告、產品介紹、公司簡介等網頁後,要找伺服器、上傳、再設定主機嗎? 都不用了,你寫的網頁(node.js)功能,只要一個指令就佈署到Firebase的雲端主機,馬上就上線、馬上就幫你服務廣大的客戶了。

Firebase課程成果影片,實作出類Instagram分享相片/雲端儲存/訊息推播功能

相關文章:

Category: Firebase 標籤:, , , ,

關於 Hank Tom

專長為程式語言、雲端服務開發,Linux系統管理, 任職:利拓科技 技術長,海林行動科技 技術總監 輔仁大學 兼任助理教授 ,為 Android高效入門>深度學習、CentOS 7建置、管理與伺服器架設實戰、Java網路程式設計、雲端網頁程式設計-Google App Engine應用實作 等書作者

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *