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