Android-與Firebase串接

Vincent Zheng
新手工程師的程式教室
5 min readDec 19, 2018

Firebase是Google提供的後端服務,可以幫助開發者更快完成一套系統,而不必撰寫Spring之類的伺服器端程式。目前提供資料庫(NoSQL)、推播通知、帳號管理、檔案儲存、廣告投放等。只要在網頁上設定好,前端就能直接呼叫API來使用。

支援的平台與程式語言包括:Android、iOS、Python、Java、C#、Ruby、Go等。本文以Android應用程式專案為例,帶領讀者串接Firebase。

一、建立Firebase專案

首先請到Firebase的網站登入,之後點擊右上方的按鈕前往「控制台」。
https://firebase.google.com/

Firebase控制台

接著在控制台中新增一個專案,每個專案可以串接多個應用程式,使它們能共用資料庫、帳號管理等功能的配置。在下方可以決定是否要將使用紀錄分享給Firebase。

在Firebase新增專案

Firebase專案建立完成後,接下來就要進行串接,因此請先準備好一個Android專案。串接的方式有兩種,分別在第二節與第三節介紹。

二、透過Firebase嚮導手動配置

在剛剛建立的Firebase專案的首頁,點選新增Android應用程式的圖案。

空專案的首頁

接著會出現新的畫面,指引讀者完成Android專案的配置。網頁上已經將操作步驟講解得蠻清楚,只要照著做即可。基本上就是提供套件名稱、下載組態設定檔,再到Gradle檔添加幾個東西。

配置Firebase的引導步驟

三、在Android Studio自動配置

這種配置方式會在Android Studio進行。請展開工具列上的「Tools」功能表,選擇「Firebase」,開啟「Firebase Assistant」。

開啟Firebase Assistant

此時在右邊有許多Firebase提供的服務。要想使用這些功能,第一步都是要與Firebase連接,其次才是匯入各功能所需要的函式庫。我們只要完成第一步就好。假設隨便選一個,例如推播功能,可像下圖這樣開啟選單,再按下「Set up」的文字。

Firebase可供設置的服務

接著點選「Connect to Firebase」,此時可能要求讀者登入Google。

之後在Android Studio會出現一個視窗,這裡是選擇Android專案要與哪一個Firebase專案串接。可以新建一個,或是挑選之前在控制台建立好的專案。換句話說,讀者一開始甚至不需要前往Firebase的網站建立專案。

挑選現有的Firebase專案進行串接

按下「Connect to Firebase」便會開始進行,過程中若出現要在Gradle檔案中添加東西的視窗,請允許Android Studio繼續。等到右方出現小小的「Connected」圖案,就代表串接完成。

四、配置失敗的處理

使用Android Studio自動配置時,因為網路不穩或其他原因導致失敗的話,會出現這樣的訊息:

Firebase: Connect to Firebase failed. Please check your internet connection and try again. If errors persist, you can connect manually at https://console.firebase.google.com

如果再次嘗試連結Firebase,應該會有這樣的視窗,點選「Sync」即可。

與Firebase專案同步

出現這個視窗的原因是,Android Studio偵測到已經在Firebase的某個專案註冊了,但組態設定檔(google-services.json)不存在,因此需要進行下載。

下圖便是應用程式註冊後的網頁畫面,可以從Firebase專案首頁的齒輪按鈕前往檢視。

Firebase專案設定畫面

在剛剛的視窗中點選「Sync」按鈕,雖可自動下載設定檔並配置好,但似乎不會幫忙在Gradle檔添加東西。

要添加的內容請參考第二節提到手動配置嚮導的第三步。或是回到Firebase Assistant,在繼續匯入服務的函式庫時,也會出現視窗幫讀者配置。然而服務的函式庫不是目前所需要的就是了,之後可以再移除。

匯入服務函式庫時,會順便配置Firebase不足的部份

--

--

Vincent Zheng
新手工程師的程式教室

我是Vincent,是個來自資管系的後端軟體工程師。當初因為學校作業,才踏出寫部落格的第一步。這裡提供程式教學文章,包含自學和工作上用到的經驗,希望能讓讀者學到東西。我的部落已搬家至 https://chikuwa-tech-study.blogspot.com/