Firebase Auth Lite

0.8.9 · active · verified Wed Apr 22

Firebase Auth Lite (Beta) is a lightweight, performance-focused alternative to the official Firebase Auth SDK, designed specifically for modern browser environments. Currently at version 0.8.9, it aims to deliver significantly smaller bundle sizes and faster authentication performance, claiming to be up to 27 times smaller and 13 times faster than the official SDK. The library is under active development, with its API explicitly stated as subject to change without warning until it reaches a stable 1.0 release. Key differentiators include a simplified API, enhanced client-side security through direct OAuth redirect handling, and limitations such as localStorage-only session persistence. It relies on modern browser features like the Fetch API and localStorage, requiring users to handle transpilation for broader browser compatibility. Its release cadence is ad-hoc, driven by development progress toward v1.0.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates core authentication flows including user registration (sign-up), logging in (sign-in), retrieving the current user's session, and logging out (sign-out), showcasing typical API usage.

import Auth from 'firebase-auth-lite';

// Ensure you set your Firebase API Key, e.g., via environment variable
const API_KEY = process.env.FIREBASE_API_KEY ?? 'YOUR_FIREBASE_API_KEY_HERE';

// Instantiate the Auth client
const auth = new Auth({
  apiKey: API_KEY,
  // Optional: Add a custom app name if needed
  // appName: 'my-web-app'
});

async function runAuthDemo() {
  try {
    console.log('Attempting to sign up a new user...');
    // Example: Sign up with email and password
    const newUser = await auth.signUpWithEmailAndPassword('test@example.com', 'password123');
    console.log('New user signed up:', newUser.uid, newUser.email);

    console.log('\nAttempting to sign in existing user...');
    // Example: Sign in with email and password
    const user = await auth.signInWithEmailAndPassword('test@example.com', 'password123');
    console.log('User signed in:', user.uid, user.email);

    console.log('\nGetting current user session...');
    // Example: Get the currently signed-in user
    const currentUser = await auth.getCurrentUser();
    if (currentUser) {
      console.log('Current active user:', currentUser.uid);
    } else {
      console.log('No user currently signed in.');
    }

    console.log('\nAttempting to sign out user...');
    // Example: Sign out
    await auth.signOut();
    console.log('User successfully signed out.');

  } catch (error) {
    console.error('Authentication failed:', error.code || error.message);
    // As of v0.8.1, error messages are Firebase error codes.
    // Map these codes to user-friendly messages using the official Firebase docs or the library's wiki.
  }
}

runAuthDemo();

view raw JSON →