背景
本文寫作時(shí)間:2017 年 4 月 1 日许帐;
2 年前為了在手機(jī)客戶端模仿短信界面尝抖,需要手機(jī)客戶端和后臺(tái)服務(wù)器實(shí)時(shí)通信或者雙向同步的方法,選擇了 Firebase 作為數(shù)據(jù)庫(kù)练慕。準(zhǔn)確來說 Firebase 應(yīng)該是 BaaS 的一種贴浙,即后端即服務(wù)。后來因?yàn)榉?wù)器在國(guó)外铛铁,速度比較慢隔显,就沒有再用。這次有個(gè)很小的需求饵逐,就是讓用戶通過自己的手機(jī)號(hào)碼查詢其快遞單號(hào)括眠。這樣一個(gè)最簡(jiǎn)單的查詢,實(shí)在是不愿意在自己搭建后端服務(wù)了倍权,于是又想到了野狗和 Firebase掷豺。本來一開始想用野狗的,但是一天最多只支持 50 個(gè)客戶端薄声,無法滿足需求当船,于是就轉(zhuǎn)向了 Firebase。簡(jiǎn)單用了一下 Firebase 發(fā)現(xiàn)自從被 Google 收購(gòu)以后功能又強(qiáng)大了許多默辨。
PS:因?yàn)?Firebase 被 Google 收購(gòu)了德频,也自帶了 Google 的某些屬性,比如某些特定人群無法訪問廓奕,自己想辦法吧抱婉。
目標(biāo)
一開始就是一個(gè)最簡(jiǎn)單直接的小目標(biāo),就是當(dāng)成一個(gè)后端服務(wù)用桌粉。結(jié)果后來發(fā)現(xiàn)還可以托管靜態(tài)網(wǎng)頁蒸绩,這樣的話就是一站式開發(fā)了,爽的不要不要的铃肯。因此最后目標(biāo)變成了:
- 使用 Firebase 提供后端 API患亿;
- 使用 Firebase 托管前端靜態(tài)文件;
使用 Firebase 提供后端 API
之前就用過押逼,因此基本沒有什么需要新學(xué)習(xí)的步藕。
步驟簡(jiǎn)單來說就是:
首先,建立一個(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"}
}
修改訪問規(guī)則漂彤,允許所有人讀任硐灾搏;
{
"rules": {
".read": "auth == null",
".write": "auth != null"
}
}
以上配置完畢后,就可以通過 URL 來調(diào)用 API 了立润。需要注意的是狂窑,如果直接使用鏈接,則會(huì)直接打開控制臺(tái)桑腮。需要響應(yīng) JSON 的話泉哈,只需要在鏈接的最后加上 .json
就可以。
因?yàn)楹笈_(tái)的功能比較簡(jiǎn)單破讨,因此整個(gè)配置也比較簡(jiǎn)單丛晦。
使用 Firebase 托管前端靜態(tài)文件
主要功能
先說一下 Firebase 托管前端靜態(tài)文件的主要功能:
- 借助安全連接提供服務(wù)。無需人工添忘,直接使用 SSL采呐;
- 快速交付內(nèi)容。直接使用 Google 的 CDN搁骑;
- 快速部署斧吐。使用命令行工具 Firebase CLI,幾句命令搞定部署仲器;
- 一鍵式回滾煤率。支持版本控制和管理以及一鍵式回滾;
使用方法
因?yàn)檫@個(gè)功能是我這次才發(fā)現(xiàn)的乏冀,現(xiàn)在來重點(diǎn)說一下這個(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
铭腕。然后又詢問是否是單頁面應(yīng)用银择,選擇是。
最后使用以下命令做部署累舷。命令行中需要指定項(xiàng)目名稱浩考。
$ firebase deploy --project project-name
至此,前端文件就已經(jīng)完成部署了被盈,可以根據(jù) Firebase 的二級(jí)域名進(jì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é)束了。
至此蕾哟,就可以通過自己的域名訪問網(wǎng)站了一忱。