教程:使用 Express.js 和 Firebase 构建实时后端服务

阅读时长 8 分钟读完

在网站开发中,后端服务是非常重要的一部分。Express.js 是一个流行的 Node.js Web 框架,而 Firebase 提供实时数据库和身份验证服务。本教程将教你如何使用 Express.js 和 Firebase 构建实时后端服务。

准备工作

在开始之前,你需要安装 Node.js 和 Firebase。其中,Firebase 是基于 Google Cloud Platform 的一种云服务,提供实时数据库和身份验证服务。它非常易于使用,允许开发人员快速构建高性能的应用程序后端。

  1. 下载并安装 Node.js:https://nodejs.org/
  2. 创建一个 Firebase 账号,并在控制台中创建一个新项目:https://firebase.google.com/
  3. 安装 Firebase CLI:npm install -g firebase-tools
  4. 在终端中登录 Firebase CLI:firebase login

创建 Express.js 应用程序

我们将使用 Express.js 来构建后端服务。在命令行中,执行以下命令:

  1. 创建一个新目录:mkdir my-express-app
  2. 进入该目录:cd my-express-app
  3. 初始化 Node.js 项目:npm init
  4. 安装 Express.js:npm install express --save
  5. 创建 index.js 文件,并添加以下代码:
-- -------------------- ---- -------
----- ------- - -------------------
----- --- - ----------

------------ ----- ---- -- -
  --------------- ---------
---

----- ---- - ---------------- -- -----
---------------- -- -- -
  ---------------- --------- -- ---- -----------
---
  1. 运行应用程序:node index.js
  2. 在浏览器中访问 http://localhost:3000,应该会看到 Hello World! 的输出。

现在我们已经创建了一个最基本的 Express.js 应用程序。接下来,我们将使用 Firebase 实现实时后端服务。

集成 Firebase 实时数据库

Firebase 提供了实时数据库服务,允许我们实时同步数据。在 Firebase 控制台中,创建一个新的实时数据库,并从控制台中获得项目的凭据(Credentials)。

  1. 将 Firebase 密钥(Credentials)保存到本地,如 firebase-credentials.json
  2. 安装 Firebase Admin SDK:npm install firebase-admin --save
  3. 创建 firebase.js 文件,并添加以下代码:
-- -------------------- ---- -------
----- ----- - --------------------------
----- -------------- - ---------------------------------------

---------------------
  ----------- --------------------------------------
  ------------ ----------------------------------------
---

-------------- - ------------------

<my-project-id> 替换为 Firebase 项目的 ID。

现在我们已经创建了一个 Firebase 实例。接下来,我们将使用实时数据库来替代 Express.js 应用程序的 / 端点。

-- -------------------- ---- -------
----- ------- - -------------------
----- -------- - ----------------------
----- --- - ----------

------------ ----- ---- -- -
  --------------------------------------- ---- -- -
    --- -------- - -----------
    -- ----------- -------- - ---
    -----------------------------------
  ---
---

----- ---- - ---------------- -- -----
---------------- -- -- -
  ---------------- --------- -- ---- -----------
---

现在,当你访问 http://localhost:3000,应该会看到 messages 节点的结果输出。

推送新的数据

我们可以使用 Firebase 的 REST API 将新数据添加到实时数据库。因此,在客户端发送 HTTP POST 请求时,我们可以将请求体添加到数据库中。

-- -------------------- ---- -------
----- ------- - -------------------
----- ---------- - -----------------------
----- -------- - ----------------------
----- --- - ----------

---------------------------

------------- ----- ---- -- -
  ----- --- - ---------------------------------
  ------------------------- -- -
    --------------------
  ---
---

------------ ----- ---- -- -
  --------------------------------------- ---- -- -
    --- -------- - -----------
    -- ----------- -------- - ---
    -----------------------------------
  ---
---

----- ---- - ---------------- -- -----
---------------- -- -- -
  ---------------- --------- -- ---- -----------
---

身份验证

现在我们已经实现了实时后端服务,但是任何人都可以通过 HTTP POST 请求向我们的数据库中添加数据。为了解决这个问题,我们可以使用 Firebase Authentication 来验证身份。

在控制台中启用身份验证,并添加一个用户。在客户端发送请求时,将 ID Token 添加到 HTTP 请求头中,然后在服务器端验证该 Token。

-- -------------------- ---- -------
----- ------- - -------------------
----- ---------- - -----------------------
----- -------- - ----------------------
----- ----- - ----------------------------
----- --- - ----------

---------------------------

------------- ----- ---- -- -
  ----- ------- - --------------------------------------- ------
  -----------------------------------
    ------------------ -- -
      ----- ------- - -----------------
      ----- --- - -------------------------------------------
      ------------------------- -- -
        --------------------
      ---
    --
    ---------- -- -
      -------------------
      --------------------
    ---
---

------------ ----- ---- -- -
  ----- ------- - --------------------------------------- ------
  -----------------------------------
    ------------------ -- -
      ----- ------- - -----------------
      ------------------------------------------------- ---- -- -
        --- -------- - -----------
        -- ----------- -------- - ---
        -----------------------------------
      ---
    --
    ---------- -- -
      -------------------
      --------------------
    ---
---

----- ---- - ---------------- -- -----
---------------- -- -- -
  ---------------- --------- -- ---- -----------
---

现在,只有已经登录的用户才能向实时数据库添加数据,并且只能查看他们自己发送的数据。

总结

本教程中,我们介绍了如何使用 Express.js 和 Firebase 构建实时后端服务。我们从最基本的 Express.js 应用程序开始,演示了如何使用 Firebase 实时数据库以及身份验证服务。在此基础上,你可以构建更高级的后端服务,例如使用 Firestore 和 Cloud Functions 进行更高级的数据处理和操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/652cf60d7d4982a6ebe7955a

纠错
反馈