发布于 2026-01-05 5 阅读
0

Firebase 入门 - 身份验证 firebase-example 由 Mux 呈现的 DEV 全球展示挑战赛:展示你的项目!

Firebase 入门 - 身份验证

firebase示例

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

注:我并非 Firebase 的合作伙伴。

什么是 Firebase?

Firebase是 Google 提供的一系列工具,包括云数据库、身份验证、托管和无服务器函数等,可用于 Web 和移动应用。Firebase 的一大优势在于,用户可以先使用免费套餐,只有当项目达到一定的使用量后才需要付费。

在这篇文章中,我将介绍如何实现身份验证的基础知识。

创建项目

“项目”是 Firebase 对您的网站/应用及其与 Firebase 服务之间连接的称呼。您可以从firebase.google.com登录(右上角),然后点击“前往控制台”(也在右上角)。

控制台

控制台是存放所有项目的地方。将项目添加到帐户后,它们就会显示在这里。选择项目卡片将带您进入该项目的控制面板——您可以在这里调整项目的设置。

添加项目

添加项目非常快捷。点击“添加项目”卡片,输入项目名称,根据需要调整位置,并接受条款和条件(当然,请务必在阅读后再接受)——就这么简单!

关于免费项目的说明

现在或许应该提一下,每个项目都有自己的计划,所以您不必担心项目数量过多而超出免费层级的限制(尽管允许的免费项目数量有限制 -更多详情)。

连接到我们的网页

在使用 Firebase 服务之前,我们需要在页面和 Firebase 之间建立链接。为此,请点击看起来像 HTML 结束标签的图标(从左数第三个白色背景的图标):

在这里,您可以添加应用程序的昵称(可以是任何名称),还可以根据需要添加托管(通过 Firebase 部署您的网站 - 本文不会介绍托管,因此我没有选中此项)。

点击“注册应用”后,您将获得一个 HTML 代码块和说明,以便将其添加到您的末尾<body>(但在尝试使用 Firebase 之前)。

我将把这段代码添加到一个模板 HTML 文件中(index.html):

请注意,您需要添加提供的 firebaseConfig 对象值。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Firebase Example</title>
</head>
<body>
  <div id="firebaseui-auth-container">
    <!-- This is where the Login ui will load -->
  </div>
  <!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-app.js"></script>

  <!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#config-web-app -->
  <script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-auth.js"></script>
<script>
  // Your web app's Firebase configuration
  var firebaseConfig = {
    REPLACE THIS WITH THE CODE PROVIDED BY FIREBASE
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
</script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

简要分析

此代码块加载 Firebase,类似于您使用 jQuery 的方式。

<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-app.js"></script>
Enter fullscreen mode Exit fullscreen mode

此代码块将被替换为您希望页面加载的其他服务。在本例中,我们将加载身份验证服务:

<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#config-web-app -->
<script src="https://www.gstatic.com/firebasejs/6.3.3/firebase-auth.js"></script>
Enter fullscreen mode Exit fullscreen mode

最后,此代码块将详细信息提供给 Firebase,从而建立与您的项目之间的连接。这就像打电话给朋友,等待他们接听。一旦他们接听,您就可以滔滔不绝地讲个不停了!

<script>
  // Your web app's Firebase configuration
  var firebaseConfig = {
    REPLACE THIS WITH THE CODE PROVIDED BY FIREBASE
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
</script>
Enter fullscreen mode Exit fullscreen mode

现在我们的项目已经创建好了,让我们添加身份验证功能。

验证

许多应用都希望利用身份验证系统的强大功能,但要理清与各种服务的连接启用邮箱登录可能非常繁琐。幸运的是,Firebase 可以帮你省去很多麻烦,让你轻松地从一个服务开始,并随着时间的推移添加其他服务。

启用身份验证

要启用身份验证,请点击身份验证卡片或从左侧导航栏选择“身份验证”,然后在页面加载后点击“设置登录方式”。您可以在这里设置用户可以使用的身份验证提供商。

在本教程中,我将介绍电子邮件/密码和 Google,因为这是我过去使用过的两种选项。

电子邮件/密码

这是最基本的登录选项,允许用户使用邮箱/密码注册/登录。启用此选项非常简单,只需在登录提供商列表中点击“邮箱/密码”,然后切换第一个开关,再点击“保存”即可。

Google 登录

这将允许用户使用他们的 Google 帐户登录(类似于您登录 Firebase 的方式)。与电子邮件/密码登录类似,您可以将启用开关切换为“已启用”,但这里多了一个步骤。您需要添加一个支持邮箱,该邮箱必须是有效的 Gmail 帐户。这是为了方便用户在需要时提交支持邮件。

其他选项

对于外部服务,有关连接到服务提供商的详细信息,请参阅相应的文档(链接在此):

身份验证用户界面

现在我们已经设置好了与 Firebase 的连接,接下来需要添加用户界面。我将使用Firebase UI,这需要添加以下内容:

      // ...
      // Initialize Firebase
      firebase.initializeApp(firebaseConfig);
    </script>
    <!-- Firebase UI -->
+    <script src="https://cdn.firebase.com/libs/firebaseui/3.5.2/firebaseui.js"></script>
+    <link
+      type="text/css"
+      rel="stylesheet"
+      href="https://cdn.firebase.com/libs/firebaseui/3.5.2/firebaseui.css"
+    />    
+    <script src="./auth.js"></script>
  </body>
</html>
Enter fullscreen mode Exit fullscreen mode

这些添加项将加载我们需要的 Firebase UI 信息,但我们需要告诉它要使用什么配置(这就是该auth.js文件的作用所在)。

Auth.js

首先,我们需要auth.js在与文件相同的目录中创建它index.html

其中auth.js,我们将添加以下内容:

// 1) Create a new firebaseui.auth instance stored to our local variable ui
const ui = new firebaseui.auth.AuthUI(firebase.auth());

// 2) These are our configurations.
const uiConfig = {
  callbacks: {
    signInSuccessWithAuthResult(authResult, redirectUrl) {
      return true;
    },
    uiShown() {
      document.getElementById('loader').style.display = 'none';
    },
  },
  signInFlow: 'popup',
  signInSuccessUrl: 'signedIn',
  signInOptions: [
    firebase.auth.EmailAuthProvider.PROVIDER_ID,
    firebase.auth.GoogleAuthProvider.PROVIDER_ID,
    // Additional login options should be listed here
    // once they are enabled within the console.
  ],
};

// 3) Call the 'start' method on our ui class
// including our configuration options. 
ui.start('#firebaseui-auth-container', uiConfig);
Enter fullscreen mode Exit fullscreen mode

现在,如果您index.html在浏览器中打开该文件,您应该会在页面上看到以下加载信息:

🎉 恭喜!您的身份验证界面已准备就绪!(不过,它需要部署到服务器上才能正常工作;例如,如果您之前已配置过 Firebase Hosting)


文章来源:https://dev.to/terabytetiger/getting-started-with-firebase-authentication-2bg7