āĻāĻĒāύāĻŋ Firebase Authentication āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ āϏāĻžāĻāύ āĻāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āϏāĻžāĻāύ-āĻāύ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϝāĻžāϰ āĻŽāϧā§āϝ⧠āϰāϝāĻŧā§āĻā§ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻžāĻāύ-āĻāύ āĻāĻŦāĻ āĻĢā§āĻĄāĻžāϰā§āĻā§āĻĄ āĻĒāϰāĻŋāĻāϝāĻŧ āĻĒā§āϰāĻĻāĻžāύāĻāĻžāϰ⧠āϝā§āĻŽāύ Google āϏāĻžāĻāύ-āĻāύ āĻāĻŦāĻ Facebook āϞāĻāĻāύāĨ¤ āĻā§āĻāĻžāĻŦā§ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻžāĻāύ-āĻāύ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻž āĻĻā§āĻāĻŋāϝāĻŧā§ āĻāĻ āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞ āĻāĻĒāύāĻžāĻā§ Firebase Authentication āϏāĻžāĻĨā§ āĻļā§āϰ⧠āĻāϰā§āĨ¤
Authentication SDK āϝā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āĻļā§āϰ⧠āĻāϰā§āύ
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āύāĻž āĻāϰ⧠āĻĨāĻžāĻā§āύ āϤāĻžāĻšāϞ⧠Firebase JS SDK āĻāύāϏā§āĻāϞ āĻāϰā§āύ āĻāĻŦāĻ Firebase āĻļā§āϰ⧠āĻāϰā§āύ āĨ¤
Firebase Authentication JS SDK āϝā§āĻ āĻāϰā§āύ āĻāĻŦāĻ Firebase Authentication āĻļā§āϰ⧠āĻāϰā§āύ:
Web
import { initializeApp } from "firebase/app"; import { getAuth } from "firebase/auth"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Firebase Authentication and get a reference to the service const auth = getAuth(app);
Web
import firebase from "firebase/compat/app"; import "firebase/compat/auth"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Firebase Authentication and get a reference to the service const auth = firebase.auth();
(āĻāĻā§āĻāĻŋāĻ) Firebase Local Emulator Suite āϏāĻžāĻĨā§ āĻĒā§āϰā§āĻā§āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āĻā§āĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻāϰ⧠āϏ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻĨāĻž āĻŦāϞāĻžāϰ āĻāĻā§, āĻāϏā§āύ Authentication āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻĒā§āϰā§āĻā§āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŽāύ āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϏā§āĻ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āϝāĻžāĻ: Firebase Local Emulator Suite āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§āĻļāϞ āĻāĻŦāĻ āĻĒā§āϰāĻĻāĻžāύāĻāĻžāϰā§āĻĻā§āϰ āĻŽāϧā§āϝ⧠āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāĻā§āĻā§āύ, Authentication āĻāĻŦāĻ Firebase Security Rules āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāĻŦāĻ āĻĒā§āϰāĻžāĻāĻā§āĻ āĻĄā§āĻāĻž āϏāĻš āĻŦāĻŋāĻāĻŋāύā§āύ āĻĄā§āĻāĻž āĻŽāĻĄā§āϞ āĻā§āώā§āĻāĻž āĻāϰ⧠āĻĻā§āĻā§āύ, āĻŦāĻž āϏāĻžāĻāύ-āĻāύ UI āĻĄāĻŋāĻāĻžāĻāύā§āϰ āĻĒā§āϰā§āĻā§āĻāĻžāĻāĻĒāĻŋāĻ, āϞāĻžāĻāĻ āĻĒāϰāĻŋāώā§āĻŦāĻžāĻā§āϞāĻŋ āϏā§āĻĨāĻžāĻĒāύ āύāĻž āĻāϰ⧠āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻāϝāĻŧāĻž āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āϧāĻžāϰāĻŖāĻž āĻšāϤ⧠āĻĒāĻžāϰā§ā§ˇ
āĻāĻāĻāĻŋ Authentication āĻāĻŽā§āϞā§āĻāϰ āĻšāϞ Local Emulator Suite āĻ āĻāĻļ, āϝāĻž āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒāĻā§ āĻ āύā§āĻāϰāĻŖ āĻāϰāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏ āϏāĻžāĻŽāĻā§āϰ⧠āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻāϰā§, āϏā§āĻāϏāĻžāĻĨā§ āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻĒāύāĻžāϰ āĻ āύā§āĻāϰāĻŖ āĻāϰāĻž āĻĒā§āϰāĻāϞā§āĻĒ āϏāĻāϏā§āĻĨāĻžāύāĻā§āϞāĻŋ (āĻĢāĻžāĻāĻļāύ, āĻ āύā§āϝāĻžāύā§āϝ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāĻŦāĻ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āύāĻŋāϝāĻŧāĻŽ)āĨ¤
Authentication āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻŽāĻžāϤā§āϰ āĻāϝāĻŧā§āĻāĻāĻŋ āϧāĻžāĻĒ āĻāĻĄāĻŧāĻŋāϤ:
- āĻāĻŽā§āϞā§āĻāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āĻāϰāϤ⧠āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āĻĒāϰā§āĻā§āώāĻž āĻāύāĻĢāĻŋāĻāĻžāϰ⧠āĻā§āĻĄā§āϰ āĻāĻāĻāĻŋ āϞāĻžāĻāύ āϝā§āĻ āĻāϰāĻž āĻšāĻā§āĻā§āĨ¤
- āĻāĻĒāύāĻžāϰ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻĒā§āϰāĻā§āĻā§āĻ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϰ āϰā§āĻ āĻĨā§āĻā§,
firebase emulators:start
āĨ¤ - āĻāύā§āĻāĻžāϰā§āĻā§āĻāĻŋāĻ āĻĒā§āϰā§āĻā§āĻāĻžāĻāĻĒāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ Local Emulator Suite UI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž, āĻ āĻĨāĻŦāĻž āĻ -āĻāύā§āĻāĻžāϰā§āĻā§āĻāĻŋāĻ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ Authentication āĻāĻŽā§āϞā§āĻāϰ REST API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĨ¤
āĻāĻāĻāĻŋ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āύāĻŋāϰā§āĻĻā§āĻļāĻŋāĻāĻž Connect your app to the Authentication emulator-āĻ āĻāĻĒāϞāĻŦā§āϧāĨ¤ āĻāϰāĻ āϤāĻĨā§āϝā§āϰ āĻāύā§āϝ, Local Emulator Suite āĻā§āĻŽāĻŋāĻāĻž āĻĻā§āĻā§āύāĨ¤
āĻāĻāύ āĻāϞā§āύ āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
āύāϤā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϏāĻžāĻāύ āĻāĻĒ āĻāϰā§āύ
āĻāĻāĻāĻŋ āĻĢāϰā§āĻŽ āϤā§āϰāĻŋ āĻāϰā§āύ āϝāĻž āύāϤā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϤāĻžāĻĻā§āϰ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒā§ āύāĻŋāĻŦāύā§āϧāύ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ⧎ āϝāĻāύ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻĢāϰā§āĻŽāĻāĻŋ āĻĒā§āϰāĻŖ āĻāϰā§āύ, āϤāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĻā§āĻāϝāĻŧāĻž āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϝāĻžāĻāĻžāĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ createUserWithEmailAndPassword
āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āĻĒāĻžāĻ āĻžāύ:
Web
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed up const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϏāĻžāĻāύ āĻāύ āĻāϰā§āύ
āĻāĻāĻāĻŋ āĻĢāϰā§āĻŽ āϤā§āϰāĻŋ āĻāϰā§āύ āϝāĻž āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āϤāĻžāĻĻā§āϰ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻžāĻāύ āĻāύ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ⧎ āϝāĻāύ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻĢāϰā§āĻŽāĻāĻŋ āĻĒā§āϰāĻŖ āĻāϰā§āύ, āϤāĻāύ signInWithEmailAndPassword
āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āĻāϞ āĻāϰā§āύ:
Web
import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; });
Web
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
āĻāĻāĻāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āϏā§āĻā§āĻ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻ āϏā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĄā§āĻāĻž āĻĒāĻžāύ
āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āώā§āĻ āĻžāϰ āĻāύā§āϝ āϝāĻžāϤ⧠āϏāĻžāĻāύ-āĻāύ āĻāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻĨā§āϝā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ, āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻŦāϏā§āϤā§āϤ⧠āĻāĻāĻāύ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻ āϏāĻāϝā§āĻā§āϤ āĻāϰā§āύāĨ¤ āϝāĻāύāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āϏāĻžāĻāύ-āĻāύ āĻ āĻŦāϏā§āĻĨāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϝāĻŧ āϤāĻāύ āĻāĻ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻāĻā§ āĻĄāĻžāĻāĻž āĻšāϝāĻŧāĨ¤
onAuthStateChanged
āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻ āϏāĻāϝā§āĻā§āϤ āĻāϰā§āύāĨ¤ āϝāĻāύ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻĢāϞāĻāĻžāĻŦā§ āϏāĻžāĻāύ āĻāύ āĻāϰā§āύ, āĻāĻĒāύāĻŋ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻĨā§āϝ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
Web
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user const uid = user.uid; // ... } else { // User is signed out // ... } });
Web
firebase.auth().onAuthStateChanged((user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User var uid = user.uid; // ... } else { // User is signed out // ... } });
āĻĒāϰāĻŦāϰā§āϤ⧠āĻĒāĻĻāĻā§āώā§āĻĒ
āĻ āύā§āϝāĻžāύā§āϝ āĻĒāϰāĻŋāĻāϝāĻŧ āĻĒā§āϰāĻĻāĻžāύāĻāĻžāϰ⧠āĻāĻŦāĻ āĻŦā§āύāĻžāĻŽā§ āĻ āϤāĻŋāĻĨāĻŋ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻā§āĻāĻžāĻŦā§ āϏāĻŽāϰā§āĻĨāύ āϝā§āĻ āĻāϰāĻŦā§āύ āϤāĻž āĻāĻžāύā§āύ:
- Google āϏāĻžāĻāύ-āĻāύ
- āĻĢā§āϏāĻŦā§āĻ āϞāĻāĻāύ
- āĻā§āĻāĻāĻžāϰ āϞāĻāĻāύ
- GitHub āϞāĻāĻāύ āĻāϰā§āύ
- āĻŦā§āύāĻžāĻŽā§ āϏāĻžāĻāύ āĻāύ