0
0
FirebaseHow-ToBeginner · 4 min read

How to Set Up Email Password Authentication in Firebase

To set up email/password authentication in Firebase, first enable it in the Firebase Console under Authentication > Sign-in method. Then use Firebase SDK's createUserWithEmailAndPassword and signInWithEmailAndPassword methods to register and log in users with email and password.
📐

Syntax

Firebase provides two main methods for email/password authentication:

  • createUserWithEmailAndPassword(auth, email, password): Registers a new user with email and password.
  • signInWithEmailAndPassword(auth, email, password): Signs in an existing user with email and password.

Here, auth is the Firebase Auth instance, email is the user's email string, and password is the user's password string.

javascript
import { getAuth, createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";

const auth = getAuth();

// Register new user
createUserWithEmailAndPassword(auth, email, password)
  .then(userCredential => {
    // User registered
  })
  .catch(error => {
    // Handle error
  });

// Sign in existing user
signInWithEmailAndPassword(auth, email, password)
  .then(userCredential => {
    // User signed in
  })
  .catch(error => {
    // Handle error
  });
💻

Example

This example shows how to enable email/password auth in Firebase and use it to register and sign in a user in a simple JavaScript app.

javascript
import { initializeApp } from "firebase/app";
import { getAuth, createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";

// Your Firebase config object from Firebase Console
const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_AUTH_DOMAIN",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_STORAGE_BUCKET",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID"
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);
const auth = getAuth(app);

// Register user function
function registerUser(email, password) {
  createUserWithEmailAndPassword(auth, email, password)
    .then(userCredential => {
      console.log("User registered:", userCredential.user.email);
    })
    .catch(error => {
      console.error("Registration error:", error.message);
    });
}

// Sign in user function
function signInUser(email, password) {
  signInWithEmailAndPassword(auth, email, password)
    .then(userCredential => {
      console.log("User signed in:", userCredential.user.email);
    })
    .catch(error => {
      console.error("Sign-in error:", error.message);
    });
}

// Example usage
registerUser("test@example.com", "strongPassword123");
signInUser("test@example.com", "strongPassword123");
Output
User registered: test@example.com User signed in: test@example.com
⚠️

Common Pitfalls

  • Not enabling Email/Password sign-in method in Firebase Console causes authentication failures.
  • Using weak or short passwords can cause errors; Firebase requires passwords to be at least 6 characters.
  • Not handling errors properly can confuse users; always catch and display error messages.
  • Trying to register an already existing email will throw an error; handle this case gracefully.
javascript
/* Wrong: Not enabling Email/Password in Firebase Console */
// This will cause sign-in or registration to fail with an error.

/* Right: Enable Email/Password in Firebase Console > Authentication > Sign-in method */

/* Wrong: Using short password */
createUserWithEmailAndPassword(auth, "user@example.com", "123")
  .catch(error => console.error(error.message)); // Error: Password should be at least 6 characters

/* Right: Use strong password */
createUserWithEmailAndPassword(auth, "user@example.com", "strongPass123")
  .then(userCredential => console.log("Registered"))
  .catch(error => console.error(error.message));
📊

Quick Reference

Remember these key points when setting up Firebase email/password authentication:

  • Enable Email/Password sign-in in Firebase Console.
  • Use createUserWithEmailAndPassword to register users.
  • Use signInWithEmailAndPassword to log in users.
  • Passwords must be at least 6 characters.
  • Always handle errors to inform users.

Key Takeaways

Enable Email/Password sign-in method in Firebase Console before coding.
Use Firebase SDK methods createUserWithEmailAndPassword and signInWithEmailAndPassword for registration and login.
Passwords must be at least 6 characters to meet Firebase requirements.
Always catch and handle errors to provide clear feedback to users.
Avoid registering duplicate emails by handling existing user errors gracefully.