Faable Auth vs Firebase Authentication
Short answer: Firebase Authentication is a sign-in SDK for apps built on Firebase: generous free tier, great mobile SDKs, and tokens made for Firebase’s own services. It is not an identity provider for other applications — no authorization-code flow for third parties, no client credentials — and Google states that it processes data exclusively in the United States. Faable Auth is a standards-based OAuth 2.0 / OpenID Connect identity server: any app, API or tool that speaks OIDC can use it, it ships hosted login pages instead of a UI library you host, and your users’ identities stay in Europe.
Firebase details checked against firebase.google.com and the Identity Platform docs in September 2026. Many of the features below need the “Firebase Authentication with Identity Platform” upgrade — it is noted where it applies.
At a glance
| Capability | Faable Auth | Firebase Authentication |
|---|---|---|
| Pricing model | Plan fee: Free (15,000 MAU), Hobby 15 € and Pro 99 € (unlimited MAU) | 50,000 MAU free, then per MAU (Identity Platform); SMS per message |
| Credit card to start | No | No — but phone sign-in needs the Blaze plan with billing |
| OAuth 2.0 / OIDC provider for your apps | ✅ discovery, JWKS, UserInfo, logout | ❌ issues Firebase ID tokens for its own SDKs |
| Third-party apps “Sign in with your app” | ✅ any OIDC client, dynamic registration | ❌ |
| Machine-to-machine tokens | ✅ client credentials, 100/month free, then €2.25 per 1,000 | ❌ service accounts and the Admin SDK instead |
| Device code for CLIs and TVs | ✅ | ❌ |
| Email + password | ✅ | ✅ |
| Email magic link / code | ✅ both (Hobby and up) | Link only — 5 emails a day on the free Spark plan |
| Phone number sign-in | ❌ (SMS is used for recovery) | ✅ Blaze plan only |
| Social login | Google, GitHub, Microsoft, Figma + any OAuth 2.0 provider | Google, Apple, Facebook, GitHub, Microsoft, X, Yahoo, Play Games, Game Center |
| Passkeys | ✅ as sign-in method (Pro) and as second factor (Hobby) | ❌ not documented for production |
| MFA | Authenticator app, security keys, passkeys | SMS and TOTP (Identity Platform) |
| Enterprise SSO / SAML | ❌ OIDC only — SAML coming on Pro | ✅ SAML and OIDC (Identity Platform; 50 MAU free, then $0.015 each) |
| Hosted login pages | ✅ every screen | ❌ FirebaseUI is a library you host |
| Custom code in the login | Actions — JavaScript in the flow | Blocking functions on Cloud Functions (Identity Platform) |
| Multi-tenancy | Every auth account is a tenant | Tenants (Identity Platform) |
| Admin CLI | ✅ faable auth | Export and import only |
| Authentication logs | ✅ dashboard, API and CLI (Pro) | Cloud Logging, off by default (Identity Platform) |
| Where identities are processed | Faable’s own hardware in Europe, EU company | United States only |
| Export password hashes | ✅ faable auth users export, every plan | ✅ firebase auth:export (modified scrypt) |
| Import password hashes | ✅ bcrypt, scrypt, Argon2id, PBKDF2, every plan | ✅ scrypt, bcrypt, PBKDF2, others (Admin SDK importUsers) |
| SOC 2 / ISO 27001 | See Faable compliance scope | ✅ |
Pricing, worked through
Firebase’s free tier is its strongest argument: 50,000 monthly active users with email, phone, anonymous and social sign-in. Beyond that, with the Identity Platform upgrade, MAU are billed per user. MFA, SAML/OIDC, blocking functions, tenants and activity logs all need that upgrade.
| Monthly active users | Faable Auth | Firebase (with Identity Platform) |
|---|---|---|
| 200 | 0 € (Free) | $0 |
| 15,000 | 0 € (Free) | $0 |
| 50,000 | 15 € (Hobby) | $0 |
| 100,000 | 15 € (Hobby) | $275 |
| 250,000 | 15 € (Hobby) | $965 |
Enterprise SSO users are billed separately ($0.015 each after 50), and SMS is billed per message by country — $0.04 to Spain and the UK, $0.10 to Germany, up to $0.47 elsewhere.
The reading: both are free up to 15,000 users. Between 15,000 and roughly 53,000, Firebase is free and Faable is 15 €; above that, Firebase grows per user and Faable stays at 15 €.
Faable figures are the plan fees from Auth pricing, in euros, VAT excluded. Firebase figures are Google’s list prices in US dollars.
Hosted login pages
This is the biggest practical difference after the protocol.
Firebase has no hosted login page. You build the screens in your app, or drop in FirebaseUI — whose web version 7 is still in beta — and host it yourself. What Firebase does host is the email action handler: the page a user lands on from a password-reset or verification email, on your project’s Firebase Hosting domain.
Faable Auth hosts every screen on your auth domain, and your app only redirects to /authorize:
| Screen | Faable Auth | Firebase |
|---|---|---|
| Sign in, sign up | ✅ hosted | You build it, or host FirebaseUI |
| Forgot / reset password | ✅ hosted | ✅ hosted action handler |
| Two-step verification challenge, enrolment | ✅ hosted, with recovery codes | You build it |
| Passkey enrolment and the post-login offer | ✅ hosted | — |
| A page where users manage their factors | ✅ /flow/account/security | You build it |
| Device activation (CLI / TV login) | ✅ hosted | — |
| Custom domain | ✅ DNS records, certificate issued for you (Pro) | Needs Firebase Hosting in the project |
Hosting matters for more than saving work: a passkey is bound to the domain that created it, and a session cookie on one auth domain is what gives your second app single sign-on. See Hosted Login UI.
CLI and automation
The Firebase CLI covers Auth at the edges: firebase auth:export and auth:import for moving users, the local Auth emulator, and provider settings for a handful of methods through firebase deploy --only auth. Listing, disabling or inspecting users, or reading sign-in activity, means writing Admin SDK code or going to the Google Cloud console.
faable auth does those day-to-day operations directly:
faable auth users list --query email_verified:false --limit 50
faable auth users get user_abc123 # identities, last login and IP, suspension
faable auth users suspend user_abc123 -r "chargeback"
faable auth actions create -n add-claims -t post-login -f ./claims.js
faable auth clients create -n my-app --callback https://app.example.com/callback
faable auth logs list --user user_abc123 --since 2026-09-01Faable has no local emulator: you develop against a Free tenant.
Tokens your backend can verify
A Firebase ID token is a JWT for your Firebase project: its issuer is securetoken.google.com/<project> and its audience is the project ID. That works well inside Firebase, but it is not an access token scoped to an API, and third-party tools that expect an OIDC provider can’t use it.
Faable issues standard OAuth 2.0 access tokens with an audience per API, permissions, and RS256 signatures verifiable against the tenant’s JWKS — the same tokens a SaaS tool, an MCP client or your own microservices already know how to check. See Validate Access Tokens.
Where your users’ data lives
Google’s Firebase privacy page states that Firebase Authentication “processes data exclusively in the United States”, and we found no option to choose another location. For a European product that has to explain its data flows, that is usually the deciding line.
Faable Auth runs on our own hardware in a European datacenter, operated by a European company. For SOC 2 or ISO 27001, see our compliance scope or ask sales.
Migrating from Firebase
firebase auth:export gives you users with their password hashes in Firebase’s modified scrypt, and Faable imports them as they are, so users keep their passwords:
- Export with
firebase auth:export users.json --format=json, and copy the project’s password hash parameters from the Firebase console (Authentication → Users → ⋮). - Import with
faable auth users import users.json --from firebase --hash-key … --salt-separator … --rounds … --mem-cost …. Google and GitHub users come with their identities, so their next social login lands on the same account. Each password is upgraded to Argon2id on first sign-in. See Import and export password hashes. - Replace Firebase ID-token verification in your backend with standard access-token validation.
Phone-only and anonymous users have no equivalent in Faable and need a new sign-in method.
When Faable Auth is the better fit
- Other applications need to sign in with your users — partner apps, MCP clients, internal tools, a CLI. That takes a real OIDC provider.
- You have backend services that need their own tokens, without service-account keys.
- You want hosted login pages rather than building and hosting sign-in, MFA and account-security screens.
- Your users’ identities need to stay in Europe.
- You’re past ~53,000 MAU and want a bill that doesn’t grow with every user.
When Firebase Authentication might fit better
- You’re building on Firebase — Firestore security rules, Cloud Functions, Firebase Hosting — and want identity that plugs straight in.
- You’re a consumer mobile app that needs phone-number sign-in, anonymous users or Sign in with Apple.
- You have under 50,000 users and the free tier is the point.
- You need SAML today.
Related
- Faable Auth vs Auth0, Clerk & Keycloak
- Faable Auth vs AWS Cognito · vs Supabase Auth · vs Authelia
- Faable Auth features · Auth pricing
- Get Started with Faable Auth
Last updated on