背景
本文寫作時間:2017 年 4 月 1 日;
2 年前為了在手機(jī)客戶端模仿短信界面,需要手機(jī)客戶端和后臺服務(wù)器實時通信或者雙向同步的方法,選擇了 Firebase 作為數(shù)據(jù)庫。準(zhǔn)確來說 Firebase 應(yīng)該是 BaaS 的一種,即后端即服務(wù)。后來因為服務(wù)器在國外,速度比較慢,就沒有再用。這次有個很小的需求,就是讓用戶通過自己的手機(jī)號碼查詢其快遞單號。這樣一個最簡單的查詢,實在是不愿意在自己搭建后端服務(wù)了,于是又想到了野狗和 Firebase。本來一開始想用野狗的,但是一天最多只支持 50 個客戶端,無法滿足需求,于是就轉(zhuǎn)向了 Firebase。簡單用了一下 Firebase 發(fā)現(xiàn)自從被 Google 收購以后功能又強大了許多。
PS:因為 Firebase 被 Google 收購了,也自帶了 Google 的某些屬性,比如某些特定人群無法訪問,自己想辦法吧。
目標(biāo)
一開始就是一個最簡單直接的小目標(biāo),就是當(dāng)成一個后端服務(wù)用。結(jié)果后來發(fā)現(xiàn)還可以托管靜態(tài)網(wǎng)頁,這樣的話就是一站式開發(fā)了,爽的不要不要的。因此最后目標(biāo)變成了:
- 使用 Firebase 提供后端 API;
- 使用 Firebase 托管前端靜態(tài)文件;
使用 Firebase 提供后端 API
之前就用過,因此基本沒有什么需要新學(xué)習(xí)的。
步驟簡單來說就是:
首先,建立一個新的應(yīng)用。
然后,將原始內(nèi)容整理成 JSON 格式的文件導(dǎo)入。
{
"13963XX70903":{"trackNo":"3929740871XX2"},
"15213XX1889":{"trackNo":"392974087XX90"},
"1382XX17825":{"trackNo":"3929740XX1091"},
"188XX612866":{"trackNo":"39297408703XX"},
"186XX097892":{"trackNo":"39297408XX664"},
"1880426XX90":{"trackNo":"3929740870XX2"}
}
修改訪問規(guī)則,允許所有人讀取;
{
"rules": {
".read": "auth == null",
".write": "auth != null"
}
}
以上配置完畢后,就可以通過 URL 來調(diào)用 API 了。需要注意的是,如果直接使用鏈接,則會直接打開控制臺。需要響應(yīng) JSON 的話,只需要在鏈接的最后加上 .json
就可以。
因為后臺的功能比較簡單,因此整個配置也比較簡單。
使用 Firebase 托管前端靜態(tài)文件
主要功能
先說一下 Firebase 托管前端靜態(tài)文件的主要功能:
- 借助安全連接提供服務(wù)。無需人工,直接使用 SSL;
- 快速交付內(nèi)容。直接使用 Google 的 CDN;
- 快速部署。使用命令行工具 Firebase CLI,幾句命令搞定部署;
- 一鍵式回滾。支持版本控制和管理以及一鍵式回滾;
使用方法
因為這個功能是我這次才發(fā)現(xiàn)的,現(xiàn)在來重點說一下這個方法。
首先安裝命令行工具 Firebase CLI。
$ npm install -g firebase-tools
然后登錄自己的 Firebase 賬號。這個階段需要特別注意,因為我們和正常人不同,需要自己想辦法連接到 Google 的認(rèn)證服務(wù)器。
$ firebase login
然后進(jìn)入到自己想要部署的項目,運行命令做初始化。
$ firebase init
此時生成一些配置文件,并下載相應(yīng)的庫文件。然后根據(jù)提示選擇公共資源文件夾,因為我用的是 Angular/CLI,因此公共文件夾是 dist
。然后又詢問是否是單頁面應(yīng)用,選擇是。
最后使用以下命令做部署。命令行中需要指定項目名稱。
$ firebase deploy --project project-name
至此,前端文件就已經(jīng)完成部署了,可以根據(jù) Firebase 的二級域名進(jìn)行訪問。
但是我們一般都需要解析到自己的 DNS,因此還需要一些額外的設(shè)置。
在 Firebase 控制臺中,選擇關(guān)聯(lián)網(wǎng)域,然后輸入自己的域名。然后 Firebase 需要驗證一下域名的所有權(quán),此時需要在 DNS 上增加一條 TXT 記錄,并輸入 Firebase 提供的內(nèi)容。
生效后,點擊繼續(xù),此時 Firebase 會提供兩個 IP 地址,在 DNS 上新建域名記錄指向 Firebase 提供的 IP 地址以后,整個配置就全部結(jié)束了。
至此,就可以通過自己的域名訪問網(wǎng)站了。