在网站开发中,后端服务是非常重要的一部分。Express.js 是一个流行的 Node.js Web 框架,而 Firebase 提供实时数据库和身份验证服务。本教程将教你如何使用 Express.js 和 Firebase 构建实时后端服务。
准备工作
在开始之前,你需要安装 Node.js 和 Firebase。其中,Firebase 是基于 Google Cloud Platform 的一种云服务,提供实时数据库和身份验证服务。它非常易于使用,允许开发人员快速构建高性能的应用程序后端。
- 下载并安装 Node.js:https://nodejs.org/
- 创建一个 Firebase 账号,并在控制台中创建一个新项目:https://firebase.google.com/
- 安装 Firebase CLI:
npm install -g firebase-tools
- 在终端中登录 Firebase CLI:
firebase login
创建 Express.js 应用程序
我们将使用 Express.js 来构建后端服务。在命令行中,执行以下命令:
- 创建一个新目录:
mkdir my-express-app
- 进入该目录:
cd my-express-app
- 初始化 Node.js 项目:
npm init
- 安装 Express.js:
npm install express --save
- 创建
index.js
文件,并添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------ ----- ---- -- - --------------- --------- --- ----- ---- - ---------------- -- ----- ---------------- -- -- - ---------------- --------- -- ---- ----------- ---
- 运行应用程序:
node index.js
- 在浏览器中访问
http://localhost:3000
,应该会看到Hello World!
的输出。
现在我们已经创建了一个最基本的 Express.js 应用程序。接下来,我们将使用 Firebase 实现实时后端服务。
集成 Firebase 实时数据库
Firebase 提供了实时数据库服务,允许我们实时同步数据。在 Firebase 控制台中,创建一个新的实时数据库,并从控制台中获得项目的凭据(Credentials)。
- 将 Firebase 密钥(Credentials)保存到本地,如
firebase-credentials.json
。 - 安装 Firebase Admin SDK:
npm install firebase-admin --save
- 创建
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