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.
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Auth is the default export of the library. It is designed for ESM environments, typically used in modern browsers or via bundlers. Avoid named imports or CommonJS `require`.
import Auth from 'firebase-auth-lite';
Auth is a class and must be instantiated with the `new` keyword. The `apiKey` option is required for most authentication flows.
const auth = new Auth({ apiKey: 'YOUR_API_KEY' });
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();
Upgrade
Version history
Breaking-change detection hasn't run for this library yet.
Audit
Security & dependencies
CVE tracking and dependency tree are planned for a later release.