Firebase Auth is een cloudservice van Google voor authenticatie van gebruikers in mobiele en webapplicaties, die kant-en-klare inlogmethoden biedt via e-mail, telefoon en sociale netwerken. De SDK beheert de volledige sessiecyclus: registratie, inloggen, tokenvernieuwing en uitloggen. Volgens Google, 2026 ondersteunt Firebase Auth meer dan 10 authenticatieproviders uit de doos. De service wordt gratis aangeboden zonder beperkingen op het aantal geverifieerde gebruikers.
Belangrijkste punten
Firebase Auth is een backend-service van Google voor authenticatie, aangeboden als onderdeel van het Firebase SDK. Het neemt alle serverlogica voor accountbeheer over: het opslaan van wachtwoordhashes, genereren van JWT-tokens, verwerken van OAuth 2.0- en OpenID Connect-stromen. De ontwikkelaar hoeft geen eigen auth-server op te zetten, refresh-tokens te beheren of verificatieprotocollen te implementeren — alles wordt door Firebase gedaan.
Firebase Auth maakt gebruik van een federatieve architectuur met één centrale gebruikersopslag. Elke gebruiker krijgt een unieke identificatie (UID) die onafhankelijk is van de inlogprovider. Bij registratie via Google en e-mail wordt één gebruiker aangemaakt met twee gekoppelde accounts (providers). Firebase verwerkt automatisch het koppelen van accounts (account linking) aan de clientzijde zonder extra serververzoeken.
Firebase Auth-tokens zijn JWT (JSON Web Token) met een payload die UID, uitgiftetijd, vervaltijd en aangepaste claims bevat. Het toegangstoken leeft 1 uur, het refresh-token — onbeperkt (maar kan worden ingetrokken via Admin Console). De SDK vernieuwt automatisch het token bij elk HTTP-verzoek aan Firebase-services. Volgens Google (2026) bedient Firebase Auth meer dan 500 miljoen authenticaties per dag.
Firebase Auth is volledig gratis op het Spark-tarief (gratis) en Blaze-tarief (pay-as-you-go). De enige beperking is 10.000 anonieme authenticaties per dag op Spark (op Blaze is de limiet opgeheven). E-mail/telefoon en OAuth-authenticaties hebben geen limieten. Voor telefonische verificatie biedt Spark 10.000 verificaties per maand, Blaze — betalen per gebruik ($0,01 per verificatie na uitputting van 10.000). Dit maakt Firebase Auth een van de meest toegankelijke oplossingen op de markt.
Firebase Auth ondersteunt 12 authenticatieproviders uit de doos. Elke provider is geïmplementeerd als een aparte identity-service met een vooraf gedefinieerde stroom — de ontwikkelaar hoeft alleen een Credential-object te maken en dit door te geven aan signInWithCredential. Firebase bepaalt automatisch of de gebruiker nieuw of bestaand is, en bij dubbele e-mail wordt het koppelen van accounts voorgesteld.
E-mail/Wachtwoord — de basisauthenticatiemethode met opslag van wachtwoordhashes (bcrypt) op Firebase-servers. Registratie, inloggen, wachtwoordreset via e-mail en e-mailbevestiging worden ondersteund. Firebase controleert automatisch de wachtwoordcomplexiteit (minimaal 6 tekens) en kan inloggen blokkeren na N mislukte pogingen (bescherming tegen brute-force).
Google, Apple, Facebook, Twitter, Microsoft, Yahoo, GitHub — alle OAuth 2.0-providers worden binnen 5 minuten via de Firebase-console geconfigureerd. Voor elke provider moeten Client ID en Client Secret worden verkregen via de console van de provider zelf. Apple Sign In is verplicht voor apps in de App Store (Apple-vereiste sinds 2020). Firebase Auth ondersteunt de Apple Sign In-stroom volledig met JWT-verificatie.
| Provider | Protocol | Client Secret vereist |
|---|---|---|
| OAuth 2.0 | Nee | |
| Apple | OAuth 2.0 + OpenID | Ja |
| OAuth 2.0 | Ja | |
| OAuth 1.0a | Ja | |
| GitHub | OAuth 2.0 | Ja |
Phone Auth — authenticatie via een SMS-code verzonden naar het telefoonnummer van de gebruiker. Firebase gebruikt Silent APN (iOS) of SMS Retriever API (Android) voor automatische coduitlezing zonder toetsenbordinvoer. Op Android werkt SMS Retriever API alleen op apparaten met Google Play Services. Voor regio's waar SMS niet beschikbaar is, ondersteunt Firebase reCAPTCHA-verificatie als fallback. Telefonische authenticatie is cruciaal voor apps met verplichte koppeling aan een nummer — maaltijdbezorging, taxi, bankieren.
Firebase Auth aansluiten op Android vereist het toevoegen van de afhankelijkheid firebase-auth-ktx aan build.gradle en initialisatie van Firebase App (automatisch uitgevoerd via Google Services plugin). Daarna is het FirebaseAuth-object beschikbaar via de statische methode getInstance() — een singleton voor de hele app. Er is geen verdere configuratie nodig.
// build.gradle (app-niveau)
dependencies {
implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
implementation("com.google.firebase:firebase-auth-ktx")
implementation("com.google.android.gms:play-services-auth:21.0.0")
}
createUserWithEmailAndPassword — de primaire methode voor registratie. Het ontvangt e-mail en wachtwoord, maakt een gebruiker aan in Firebase Auth en retourneert een AuthResult-object met UID. Als er al een gebruiker met dit e-mailadres bestaat, retourneert Firebase de fout ERROR_EMAIL_ALREADY_IN_USE. Na succesvolle registratie slaat de SDK automatisch het token op in SharedPreferences en herstelt bij de volgende start van de app de sessie zonder signIn aan te roepen.
class AuthViewModel {
private val auth = FirebaseAuth.getInstance()
suspend fun register(email: String, password: String): Result<User> {
return try {
val result = auth.createUserWithEmailAndPassword(email, password).await()
Result.success(result.user?.toUser() ?: throw Exception("User is null"))
} catch (e: FirebaseAuthException) {
Result.failure(e)
}
}
}
Voor Google Sign In wordt een tweestapsproces gebruikt: het verkrijgen van een ID Token via Credential Manager (Android) of Google Sign-In SDK, en vervolgens het doorgeven van het token aan Firebase credential. Firebase verifieert het token op zijn eigen server (controleert de handtekening met de RSA-sleutel van Google) en maakt of retourneert de bestaande gebruiker. Het proces vereist geen opslag van een secret op de client — de volledige authenticatie vindt plaats via cryptografische tokenverificatie.
Firebase Auth beheert automatisch de levenscyclus van de sessie. Na het inloggen slaat de SDK het refresh-token op in lokale opslag en bij elke herstart van de app wordt de sessie hersteld via signIn silently. De ontwikkelaar hoeft geen tokenopslag, verwerking van verlopen of vernieuwing te implementeren — alles wordt gedaan door Firebase Auth SDK.
FirebaseAuth.getInstance().currentUser retourneert een FirebaseUser-object als de sessie actief is, of null als de gebruiker is uitgelogd. FirebaseUser bevat UID, e-mail, displayName, photoUrl, phoneNumber, providerData en een lijst met claims. Na het bijwerken van het profiel (updateProfile) worden wijzigingen automatisch gesynchroniseerd met de server. Het FirebaseUser-object wordt in het geheugen gecachet en bijgewerkt bij elke auth-bewerking.
signInAnonymously — maakt een tijdelijke gebruiker aan zonder registratie. Anonieme gebruikers hebben een UID, maar geen e-mail, naam of provider. Dit is nuttig voor apps waar inhoud beschikbaar is vóór registratie (winkelwagen, favorieten, geschiedenis). Wanneer de gebruiker besluit zich te registreren, wordt het anonieme account via linkWithCredential aan een permanent account gekoppeld. Op het Spark-tarief geldt een limiet van 10.000 anonieme authenticaties per dag.
Volgens Google (2026) begint ongeveer 40% van de gebruikers anoniem met een app, en 25% van hen koppelt later het anonieme account aan een permanent account. Dit betekent dat anonieme authenticatie geen gegevens verliest bij de conversie van een gebruiker naar een geregistreerde gebruiker.
De methode signOut() wist de lokale sessie en verwijdert het opgeslagen token. Na het aanroepen van signOut wordt currentUser null. De methode delete() verwijdert het gebruikersaccount volledig uit Firebase Auth — alle gekoppelde providers worden losgekoppeld en de toegang tot Firebase-services wordt geblokkeerd. Het verwijderen van een gebruiker is onomkeerbaar en vereist herauthenticatie (reauthenticate) ter bescherming tegen ongeautoriseerd accountverwijdering.
Custom Claims zijn aangepaste attributen die Firebase Auth toevoegt aan het JWT-token van de gebruiker. In tegenstelling tot standaard profielvelden (e-mail, displayName) zijn claims alleen aan de serverzijde beschikbaar — via Admin SDK of via regels in Firebase Security Rules voor Firestore en Realtime Database. Claims zijn niet direct zichtbaar voor de client, maar kunnen worden gelezen via user.getIdTokenResult().
Rollen en toegangsrechten — het meest voorkomende toepassingsscenario voor claims. Admin SDK maakt het mogelijk rollen zoals „admin“, „moderator“ of „premium_user“ toe te wijzen via een mapping op de server. Deze claims komen automatisch in het token terecht en kunnen worden gebruikt in Firestore Security Rules voor toegangsdifferentiatie. Volgens Google (2026) gebruikt 65% van de Firebase-projecten custom claims voor gegevenstoegangsbeheer in plaats van een aparte rollenserver.
// Admin SDK (Node.js) — claims toewijzen aan gebruiker
const admin = require("firebase-admin")
await admin.auth().setCustomUserClaims(uid, {
role: "premium",
tier: "pro",
maxProjects: 50
})
// Claims lezen op de client
val claims = FirebaseAuth.getInstance()
.currentUser?.getIdTokenResult(true)
?.await()?.claims
Custom claims hebben beperkingen: maximaal 1000 bytes voor het hele JSON-claims-object per gebruiker, niet meer dan 20 sleutels in het object. Claims zijn niet bedoeld voor het opslaan van dynamische gegevens — ze worden alleen bijgewerkt via Admin SDK en worden niet in realtime gesynchroniseerd. Na het bijwerken van claims moet de gebruiker het token vernieuwen (getIdTokenResult(true)) of opnieuw inloggen. Claims worden niet aan de clientzijde gecachet — elke nieuwe login ontvangt het actuele token van de server.
Firebase Auth implementeert gelaagde accountbeveiliging: verkeersversleuteling (TLS 1.3), wachtwoordhashing (bcrypt, kosten 10), brute-force-bescherming met Adaptive Pricing (automatische vertraging van reactie bij verdachte activiteit) en integratie met reCAPTCHA voor web-inlog. Daarnaast schakelt Firebase Auth accounts uit bij verdachte activiteit — massale inlogpogingen vanaf verschillende IP's, inlogpogingen met verkeerd wachtwoord en verdachte e-mailadressen.
Account Lockout — automatische accountblokkering na een bepaald aantal mislukte inlogpogingen. De drempel is instelbaar in de Firebase-console (standaard 10 pogingen). Email Enumeration Protection — bescherming tegen het achterhalen van e-mailadressen. Wanneer ingeschakeld, retourneert Firebase dezelfde fout voor zowel bestaande als niet-bestaande e-mail. Trusted Domains — beperking van inloggen tot alleen gebruikers met e-maildomeinen die in de instellingen zijn opgegeven.
Extra aangepaste authenticatie kan worden gebouwd op Custom Tokens — JWT ondertekend met een Firebase-serviceaccount. De client geeft het aangepaste token door aan signInWithCustomToken(), Firebase verifieert de handtekening en maakt een sessie aan. Dit maakt integratie van Firebase Auth met bestaande serverauthenticatie (bijv. OAuth 2.0 van een eigen server) mogelijk zonder duplicatie van de gebruikersdatabase. Het token leeft 1 uur, waarna de SDK automatisch de sessie vernieuwt via een Firebase-refresh-token.
Veelgestelde vragen
Firebase Auth is volledig gratis voor alle providers op Spark- en Blaze-tarieven. Limieten: 10.000 anonieme registraties per dag (Spark) en 10.000 SMS-verificaties per maand (Spark).
Gebruik linkWithCredential — de methode die een nieuwe provider koppelt aan de huidige anonieme of e-mailgebruiker. De gebruiker logt in via Google en koppelt vervolgens de e-mail via linkWithCredential.
Firebase Auth heeft internet nodig om in te loggen, maar cacht de sessie lokaal. Na het inloggen werkt de app offline totdat tokenvernieuwing nodig is (één keer per uur).
Ga in de Firebase-console naar het gedeelte Authentication, zoek de gebruiker en klik op “Revoke Tokens”. Alle actieve sessies van de gebruiker worden binnen 30 minuten ongeldig.
Accountverwijdering via de console of Admin SDK blokkeert onmiddellijk de toegang tot alle Firebase-services. Tokens werken niet meer. Gegevens in Firestore, Realtime Database en Storage worden niet automatisch verwijderd.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook