发布于 2026-01-06 0 阅读
0

使用 React 进行 Firebase Google 身份验证

使用 React 进行 Firebase Google 身份验证

各位开发者朋友们,大家好!
今天我们将学习如何使用 Firebase 通过 Google 登录对我们的 React 应用进行身份验证。

首先,我们来简单了解一下 Firebase 是什么。Google
Firebase是一款由 Google 支持的应用开发软件,它使开发者能够开发 iOS、Android 和 Web 应用。Firebase 提供各种工具,用于跟踪分析、生成报告、修复应用崩溃以及创建营销和产品实验。Firebase 提供多种服务,包括:

  1. 分析
  2. 验证
  3. 云消息传递
  4. 实时数据库
  5. 性能及其他更多……

Firebase Authentication 提供后端服务、易于使用的 SDK 和现成的 UI 库,用于验证用户对您应用的访问权限。它支持使用密码、电话号码、流行的联合身份提供商(例如 Google、Facebook 和 Twitter)等进行身份验证。

现在让我们开始我们的项目吧。

首先,我们将设置 Firebase 项目。为此,请访问firebase.google.com并使用您的 Google 帐户登录。现在,我们将初始化我们的应用。

点击网页右上角的“开始使用”“前往控制台” 。

替代文字

现在我们将进入“添加项目”页面。选择“添加项目”,项目名称可以随意设置。接下来,系统会要求我们选择一个 Firebase 帐户。我们选择默认帐户。之后,系统会将我们重定向到“项目概览”页面。

替代文字

要添加应用,请点击网页图标。这样我们就可以创建应用并为其命名。

替代文字

现在,在注册完我们的应用之后,让我们复制 firebaseConfig 对象,它稍后将帮助我们初始化 Web 应用并将其连接到 Firebase。该配置对象大致如下所示:

替代文字

现在要启用身份验证,让我们回到项目概览页面,点击身份验证选项卡,然后设置登录方法并启用 Google 身份验证。

替代文字

耶!我们项目的第一部分完成了。现在到了有趣的部分——编写代码。

首先,我们要开始编写代码,首先使用终端中的以下命令创建我们的初始项目目录:

npx create-react-app google-auth //google-auth 是我的目录名称

它将为我们创建一个基本的 React 应用样板。

现在我们将使用以下终端命令在应用程序中安装 Firebase:

npm install firebase

注意:如果您是第一次在系统上安装 Firebase,请在终端中输入以下命令:

npm install -g firebase-tools

现在让我们把这些知识付诸实践。
我们将创建一个服务文件夹,并将 firebase.js 文件添加到其中,然后添加以下代码。

src/service/firebase.js

import firebase from "firebase/app";
import 'firebase/auth';

const firebaseConfig = {
  apiKey: "API_KEY",
  authDomain: "PROJECT_ID.firebaseapp.com",
  databaseURL: "https://PROJECT_ID.firebaseio.com",
  projectId: "PROJECT_ID",
  storageBucket: "PROJECT_ID.appspot.com",
  messagingSenderId: "SENDER_ID",
  appId: "APP_ID",
  measurementId: "G-MEASUREMENT_ID",
};

// Initialize Firebase 
firebase.initializeApp(firebaseConfig);

export const auth = firebase.auth();
Enter fullscreen mode Exit fullscreen mode

接下来,我们将创建一个登录功能,允许我们使用谷歌账户登录。

src/service/firebase.js

export const auth = firebase.auth();

const provider = new firebase.auth.GoogleAuthProvider();
provider.setCustomParameters({ prompt: 'select_account' });

export const signInWithGoogle = () => auth.signInWithPopup(provider);
Enter fullscreen mode Exit fullscreen mode

完整的代码如下所示:
替代文字

要使用此函数,我们需要将其导入到登录组件中,并在登录按钮上添加一个 onClick 事件处理程序。因此,让我们在 components 文件夹中创建一个登录组件,并添加以下代码:

src/components/Login.js

import { signInWithGoogle } from '../services/firebase';

import '../App.css';

const Login = () => {
  return (
    <div>
      <button className="button" onClick={signInWithGoogle}><i className="fab fa-google"></i>Sign in with google</button>
    </div>
  )
}

export default Login;
Enter fullscreen mode Exit fullscreen mode

让我们把登录组件导入到 App.js 文件中。
这样就完成了。现在我们可以通过 Google 帐户登录我们的应用了。

现在让我们存储用户信息,以便在应用程序中使用。请在 App.js 文件中添加以下代码。

src/App.js

import { useState, useEffect } from 'react';

import Login from './components/Login';
import Home from './components/Home';
import firebase from './services/firebase';

import './App.css';



function App() {
  const [user, setUser] = useState(null);

  useEffect(() => {
    firebase.auth().onAuthStateChanged(user => {
      setUser(user);
    })
  }, [])

  console.log(user);

  return (
    <div className="app">
      <Login />
    </div>
  );
}

export default App;

Enter fullscreen mode Exit fullscreen mode

让我们创建一个“首页”组件,用来使用登录后获取的信息。在组件应用中创建一个“首页”组件,并将以下代码添加到其中:

src/components/Home.js

import React from 'react';

import { auth } from '../services/firebase'

import '../App.css';

const Home = ({ user }) => {
  return (
    <div className="home">
      <h1>Hello, <span></span>{user.displayName}</h1>
      <img src={user.photoURL} alt="" />
      <button className="button signout" onClick={() => auth.signOut()}>Sign out</button>
    </div>
  )
}

export default Home;

Enter fullscreen mode Exit fullscreen mode

现在让我们将 Home 组件导入到主 App.js 文件中。导入后,它看起来会像这样:
替代文字

替代文字

替代文字

替代文字

,我们刚刚创建了一个可以用谷歌账号登录的小应用。
希望大家喜欢……

文章来源:https://dev.to/mdamirgauhar/firebase-google-authentication-with-react-gop