Шаг 1. Создайте приложение React
npx create-react-app myapp
Шаг 2: после создания папки проекта откройте этот проект с помощью следующей команды
cd myapp
Шаг 3: установите firebase в свой проект с помощью этой команды
npm i firebase
Шаг 4: перейдите на панель управления firebase, создайте новый проект и скопируйте учетные данные.
const firebaseConfig = { apiKey: "your api key", authDomain: "your auth domain", projectId: "your project id", storageBucket: "your storage bucket", messagingSenderId: "your messagin senderid", appId: "your app id" };
Шаг 5: перейдите в свой проект и создайте новую папку (firebase.js) в папке src и вставьте в нее учетные данные firebase.
import { initializeApp } from "firebase/app"; import {getAuth} from 'firebase/auth; const firebaseConfig = { apiKey: "your api key", authDomain: "your auth domain", projectId: "your project id", storageBucket: "your storage bucket", messagingSenderId: "your messagin senderid", appId: "your app id" }; const app = initializeApp(firebaseConfig); export const auth=getAuth(app);
Шаг 6: на панели управления firebase выберите Аутентификация, включите вход по электронной почте/паролю.
Шаг 7. Теперь создайте 2 файла Login.jsx и Signup.jsx в папке src.
Авторизоваться->
import React, { useState } from "react"; import "./app.css"; import { createUserWithEmailAndPassword, signInWithEmailAndPassword, } from "firebase/auth"; import { auth } from "./firebase"; function Login({ setShowSignup }) { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const handleLogin = (e) => { e.preventDefault(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { const user = userCredential.user; console.log(user); }) .catch((error) => { const errorMessage = error.message; alert(errorMessage); }); }; return ( <div className="container"> <div className="card"> <h4>Login</h4> <form onSubmit={handleLogin}> <label>Email</label> <input value={email} onChange={(e) => setEmail(e.target.value)} /> <label>Password</label> <input type="password" value={password} onChange={(e) => setPassword(e.target.value)} /> <button>Login</button> </form> <p onClick={() => setShowSignup(true)} style={{ marginTop: 12 }}> Don't have an account?{" "} <span style={{ cursor: "pointer", fontWeight: "bold" }}>Signup</span> </p> </div> </div> ); } export default Login;
зарегистрироваться->
import { createUserWithEmailAndPassword } from 'firebase/auth'; import React, { useState } from 'react'; import './app.css'; import { auth } from './firebase'; function Signup({setShowSignup}) { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const handleSignup=(e)=>{ e.preventDefault(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { const user = userCredential.user; console.log(user) }) .catch((error) => { const errorMessage = error.message; alert(errorMessage) }); } return ( <div className="container"> <div className="card"> <h4>Signup</h4> <form onSubmit={handleSignup}> <label>Email</label> <input value={email} onChange={(e) => setEmail(e.target.value)} /> <label>Password</label> <input type="password" value={password} onChange={(e) => setPassword(e.target.value)} /> <button>Signup</button> </form> <p onClick={()=>setShowSignup(false)} style={{marginTop:12}}>Have an account? <span style={{cursor:'pointer',fontWeight:'bold'}}>Login</span></p> </div> </div> ) } export default Signup
Шаг 8. Импортируйте файлы Login.js и Signup.js в файл app.js следующим образом:
import React, { useState } from 'react' import Login from './Login' import Signup from './Signup' function App() { const[showSignup,setShowSignup]=useState(false) return ( <> {showSignup?<Signup setShowSignup={setShowSignup}/>:<Login setShowSignup={setShowSignup}/>} </> ) } export default App;
Шаг 9: Запустите приложение с помощью команды npm start, после чего откройте браузер и перейдите на http://localhost:3000, вы увидите следующий интерфейс-›
Теперь после Зарегистрируйтесь введите адрес электронной почты и пароль и нажмите Enter, вы увидите объект пользователя в консоли