如何使用 Firebase 成功構建 API?

已發表: 2021-09-07

Firebase 是一個應用開發平台,於 2012 年推出,兩年後被谷歌收購。 起初,Firebase 被認為只是一個用於實時應用程序的數據庫,但 Google 看到了它的潛力並決定為其添加額外的服務。

目前,Firebase 是一個 BaaS(後端即服務)系統,具有 18 個服務,以促進 Web 和移動應用程序的創建。 使用 Firebase 的 BaaS 服務的公司包括埃森哲、阿里巴巴旅遊、Stack、Twitch 和 Instacart,以及其他 2,300 多家公司。

使用 Firebase 的好處

Firebase 提供的第一個服務是它的實時數據庫,它仍然是其最大的吸引力之一。 Firebase 實時數據庫託管在雲中,以 JSON 格式存儲數據並與連接到它們的每個客戶端實時同步。 無論是使用 iOS SDK、Android SDK 還是 JavaScript SDK,連接到 Firebase 實時數據庫的所有應用程序都共享一個數據庫實例,始終與最新數據保持同步。

Cloud Firestore 是另一個有趣的 Firebase 服務。 它是一個 NoSQL 文檔數據庫,旨在促進全球範圍內移動和 Web 應用程序的數據存儲、同步和查詢。 創建用於存儲相關數據的層次結構和用於檢索數據的表達性查詢可以充分發揮 Cloud Firestore 的潛力。 反過來,查詢根據結果的大小而不是數據集大小進行擴展。 這允許應用程序從一開始就進行擴展,而無需等到需求超出容量的那一刻。

除了上述數據庫服務之外,Firebase 還提供託管服務、文件存儲、函數(AWS Lambda 風格)等。

創建 API

API 是一種提供服務供您自己或第三方應用程序使用的方式。 Firebase 允許您提供自定義服務,進而使用 Firebase 自己的服務,而無需為這些服務設置後端。 例如,您可以為第三方應用程序提供對 Firebase 實時數據庫的訪問,以查詢工業傳感器收集的信息。

在 Firebase 中創建 API 的第一步是訪問 Firebase 控制台並通過單擊“添加項目”並為新項目命名來添加項目。 Google 將為您提供為新項目啟用 Google Analytics 的選項。 建議接受此建議,因為您將從 API 獲得 A/B 測試和各種統計報告等好處。

創建項目後,您將能夠選擇 API 將使用的 Firebase 服務。 為了說明此任務,我們將了解如何使用 Firebase 實時數據庫服務。

在 Firebase 中設置實時數據庫

在左側導航欄中的“開發”部分中,單擊“實時數據庫”。 右側將出現一個“創建數據庫”按鈕。 單擊它以在 Firebase 中創建您的第一個數據庫。

接下來,您必須為新數據庫在多個地理位置選項之間進行選擇。 選擇最接近您的用戶的一個。 這是最小化 API 延遲的一個重要方面,尤其是在實時應用程序中。

下一步是為您的數據庫配置基本安全規則。 您可以選擇鎖定模式,然後根據需要分配訪問權限,或者選擇啟用所有讀取和寫入的測試模式。

您可以從測試模式選項開始,以免一開始就使安全設置複雜化。 您始終可以稍後創建規則以設置更精細的安全配置。

一旦您完成數據庫的配置,相應的 API 也會在您個人控制台的 Google Cloud Platform 中的 API 和服務部分啟用。

編程 Firebase API

此時,您已經在 Firebase 控制台中配置了項目的基本元素。 下一步是編寫您的 API 代碼。 為此,您需要在本地計算機上初始化 Firebase 託管和功能。 您可以使用 npm 安裝 firebase-tools:

 npm install -g firebase-tools

然後您可以登錄 firebase 並使用以下命令初始化您的項目:

 firebase login firebase init

將顯示一個歡迎屏幕,Firebase 會在其中通知您項目將在其中初始化的文件夾,並會出現一個選項菜單。

在該菜單中,選擇功能和託管(託管選項將允許您為將開發的 API 提供自定義 URL)。 然後從列表中選擇您之前創建的 Firebase 應用,然後您必須選擇要使用的語言。 要開發 Web API,您可以選擇 JavaScript。

如果您將使用包依賴項,請在功能文件夾中使用 npm 安裝它們。 然後您可以開始為您的函數編寫代碼。 請記住包含 firebase-functions 和 firebase-admin 包,以及您需要的任何其他包:

 import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';

要使用實時數據庫,您必須在初始化 JavaScript SDK 時指定其 URL。 該 URL 位於 Firebase 控制台的實時數據庫部分。 您可以通過其格式識別它:

 https://<database-name>.<region>.firebasedatabase.app

您可以使用以下代碼段來初始化您的 SDK,替換與您的項目的配置對像對應的數據:

 var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();

一旦您編寫了 API 函數的代碼,就可以進行部署了。 但在此之前,您必須在 firebase.json 中進行一些更改,添加以下行,根據您的項目配置進行修改:

 "rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]

下一步是部署。 第一次必須做完整部署,執行命令:

 firebase deploy

在後續部署中,您將只能使用 –only 函數參數部署函數。

執行 deploy 命令後,Firebase CLI 會在終端中顯示函數的 HTTP 端點的 URL,您可以使用它從 Web 應用程序調用 API。 URL 包含您的項目 ID 和 HTTP 函數的區域。 例如,以下 URL 可用於通過將 itemid=1 作為參數傳遞來調用項目查詢函數:

 https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

要執行該函數,請在瀏覽器中打開帶有相應參數的 URL。

請注意,部署到生產環境需要訂閱 Firebase Blaze 計劃,即即付即用,您可以在 Firebase 定價頁面上閱讀。 它是一種計費後服務,這意味著您將在每個月末為您的使用量付費。

如果您沒有 Blaze 訂閱,部署命令將不會顯示您的 API URL。 相反,您將看到一條消息,通知您如果要部署到運行時環境,您必須訂閱 Blaze 計劃。 在這種情況下,您仍然可以使用 Firebase Local Emulation Suite 在本地機器上構建和測試應用程序,而不是將它們部署到 Firebase 生產環境。 本地測試有助於在應用程序開發期間避免不必要的成本,因為每次測試運行可能會在您的帳戶上產生費用。

本地測試和原型製作

Local Emulator Suite 工具提供了一個集成的用戶界面,使原型設計變得容易和有用,可用於在本地計算機上測試您的應用程序。

使用 Emulator Suite 用戶界面,您可以測試您的數據庫設計、您的 Cloud Functions 工作流、分析後端服務的性能、評估安全規則的變化以及其他任務。 它基本上是一個安全的沙箱,用於在將 API 功能發送到生產環境之前對其進行測試。

要在本地模擬您的功能或測試您的應用程序,請運行 firebase emulators:start。 您必須安裝 Java 才能使用 Firestore Emulator。 如果你沒有它,你可以從這里安裝它。

當您調用 Firestore Emulator 時,該命令將返回一個 URL,允許您在瀏覽器中打開 Emulator Suite 用戶界面。 默認情況下,此 URL 將為 localhost:4000,但它可能因每台機器而異。

您還將獲得 HTTP 函數的完整 URL。 此 URL 將類似於:

 http://localhost:5001/apiproject-8753c/us-central1/itemQuery

只有它會有你的項目名稱、你的函數名稱,而且它可能在你的本地機器上有一個不同的端口號。

要測試該功能,請複制模擬器返回的 URL,添加任何必要的參數(例如 ?itemid=1),然後在瀏覽器的新選項卡中輸入它。 API 執行的結果將顯示在 Emulator Suite UI 中。

在 Logs 選項卡中,您將看到表明 itemQuery() 函數已執行的新日誌。 如果您的函數在 Firestore 數據庫中生成新數據,您將在 Firestore 選項卡中看到它。

為您的 API 獲得更多曝光率

如果您希望您開發的 API 變得流行,Firebase 也可以為您提供幫助。 不僅因為它可以讓您更快地構建您的應用程序,從而減少啟動和運行後端服務的大量工作,還因為它可以幫助您進行產品定位。 這怎麼可能? 僅僅是因為與 Firebase 相關的應用在搜索排名中的排名高於其他應用。

此外,請考慮 Firebase 的應用索引 API。 該工具提高了應用鏈接的搜索排名,並幫助用戶找到所需的內容。 它還將安裝按鈕放置在您應用的主頁按鈕之後,這樣感興趣的用戶只需點擊一下即可成為您的應用的用戶。

總之,Firebase 不僅為您提供可顯著加快 API 開發速度的後端服務,而且一旦它啟動並運行並向全世界公開,它還可以幫助您推廣它 - 並從中獲利。