Firebase 一站式服務(wù)

背景

本文寫作時(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)站了。

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,288評(píng)論 6 342
  • 主題:23期北京班30天踐行總結(jié)會(huì) 時(shí)間:20170227 19:20—20:50地點(diǎn):YY參加人員:丫丫老師、湯...
    龔少90990閱讀 842評(píng)論 0 4
  • 我什么都沒(méi)有 六月的清泉或九月的紅楓 只有一匹栗色馬 我什么都不懂 騷動(dòng)的欲望或蓬勃的怒氣 只有一匹栗色馬 我什么...
    袁丁58閱讀 531評(píng)論 0 1

友情鏈接更多精彩內(nèi)容