Firebase Auth este un serviciu cloud Google pentru autentificarea utilizatorilor în aplicații mobile și web, care oferă metode gata făcute de autentificare prin e-mail, telefon și rețele sociale. SDK-ul gestionează întregul ciclu al sesiunii: înregistrare, autentificare, reînnoire token și deconectare. Potrivit Google, 2026, Firebase Auth suportă peste 10 furnizori de autentificare din cutie. Serviciul este oferit gratuit fără restricții privind numărul de utilizatori autentificați.
Principalele puncte
Firebase Auth este un serviciu backend Google pentru autentificare, oferit ca parte a Firebase SDK. Acesta preia întreaga logică server de gestionare a conturilor: stocarea hash-urilor parolelor, generarea tokenilor JWT, procesarea fluxurilor OAuth 2.0 și OpenID Connect. Dezvoltatorul nu trebuie să implementeze propriul server de autentificare, să gestioneze tokenii de reîmprospătare sau să implementeze protocoale de verificare — toate acestea sunt făcute de Firebase.
Firebase Auth utilizează o arhitectură federală cu un depozit unic de utilizatori. Fiecare utilizator primește un identificator unic (UID) care nu depinde de furnizorul de autentificare. La înregistrarea prin Google și e-mail se creează un singur utilizator cu două conturi asociate (providers). Firebase gestionează automat asocierea conturilor (account linking) pe partea clientului fără solicitări suplimentare către server.
Tokenii Firebase Auth sunt JWT (JSON Web Token) cu un payload care conține UID, momentul emiterii, momentul expirării și claim-uri personalizate. Tokenul de acces trăiește 1 oră, tokenul de reîmprospătare — nelimitat (dar poate fi revocat prin Admin Console). SDK-ul reînnoiește automat tokenul la fiecare cerere HTTP către serviciile Firebase. Potrivit Google (2026), Firebase Auth deservește peste 500 de milioane de autentificări pe zi.
Firebase Auth este complet gratuit în tariful Spark (gratuit) și Blaze (pay-as-you-go). Singura limitare este de 10 mii de autentificări anonime pe zi în Spark (în Blaze limita este eliminată). Autentificările prin e-mail/telefon și OAuth nu au limite. Pentru verificarea telefonică, Spark oferă 10 mii de verificări pe lună, Blaze — plată la utilizare ($0.01 per verificare după epuizarea celor 10 mii). Acest lucru face ca Firebase Auth să fie una dintre cele mai accesibile soluții de pe piață.
Firebase Auth suportă 12 furnizori de autentificare din cutie. Fiecare furnizor este implementat ca un serviciu de identitate separat cu un flux predefinit — dezvoltatorul trebuie doar să creeze un obiect Credential și să îl transmită către signInWithCredential. Firebase determină automat dacă utilizatorul este nou sau existent, iar în caz de duplicare a e-mailului, propune asocierea conturilor.
E-mail/Parolă — metoda de bază de autentificare cu stocarea hash-urilor parolelor (bcrypt) pe serverele Firebase. Sunt suportate înregistrarea, autentificarea, resetarea parolei prin e-mail și confirmarea e-mailului. Firebase verifică automat complexitatea parolei (minimum 6 caractere) și poate bloca autentificarea după N încercări eșuate (protecție împotriva brute-force).
Google, Apple, Facebook, Twitter, Microsoft, Yahoo, GitHub — toți furnizorii OAuth 2.0 se configurează prin consola Firebase în 5 minute. Pentru fiecare furnizor trebuie obținute Client ID și Client Secret în consola furnizorului respectiv. Apple Sign In este obligatoriu pentru aplicațiile din App Store (cerință Apple din 2020). Firebase Auth suportă complet fluxul Apple Sign In cu verificare JWT.
| Furnizor | Protocol | Necesită Client Secret |
|---|---|---|
| OAuth 2.0 | Nu | |
| Apple | OAuth 2.0 + OpenID | Da |
| OAuth 2.0 | Da | |
| OAuth 1.0a | Da | |
| GitHub | OAuth 2.0 | Da |
Phone Auth — autentificare prin cod SMS trimis pe numărul de telefon al utilizatorului. Firebase utilizează Silent APN (iOS) sau SMS Retriever API (Android) pentru citirea automată a codului fără tastare. Pe Android, SMS Retriever API funcționează doar pe dispozitive cu Google Play Services. Pentru regiunile în care SMS-ul nu este disponibil, Firebase suportă verificarea reCAPTCHA ca fallback. Autentificarea telefonică este critică pentru aplicațiile cu asociere obligatorie la număr — livrare mâncare, taxi, banking.
Conectarea Firebase Auth pe Android necesită adăugarea dependenței firebase-auth-ktx în build.gradle și inițializarea Firebase App (efectuată automat prin Google Services plugin). După aceea, obiectul FirebaseAuth este disponibil prin metoda statică getInstance() — un singleton pentru întreaga aplicație. Nu este necesară nicio configurare suplimentară.
// build.gradle (nivelul aplicației)
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 — metoda principală pentru înregistrare. Primește e-mail și parolă, creează utilizatorul în Firebase Auth și returnează un obiect AuthResult cu UID. Dacă un utilizator cu acest e-mail există deja, Firebase returnează eroarea ERROR_EMAIL_ALREADY_IN_USE. După înregistrarea reușită, SDK-ul salvează automat tokenul în SharedPreferences și la următoarea pornire a aplicației restabilește sesiunea fără a apela signIn.
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)
}
}
}
Pentru Google Sign In se utilizează un proces în două etape: obținerea ID Token prin Credential Manager (Android) sau Google Sign-In SDK, apoi transmiterea tokenului către Firebase credential. Firebase verifică tokenul pe propriul server (verifică semnătura cu cheia RSA Google) și creează sau returnează utilizatorul existent. Procesul nu necesită stocarea secretului pe client — întreaga autentificare se realizează prin verificarea criptografică a tokenilor.
Firebase Auth gestionează automat ciclul de viață al sesiunii. După autentificare, SDK-ul salvează tokenul de reîmprospătare în stocarea locală, iar la fiecare repornire a aplicației restabilește sesiunea prin signIn silently. Dezvoltatorul nu trebuie să implementeze stocarea tokenului, gestionarea expirării acestuia sau reîmprospătarea — toate sunt făcute de Firebase Auth SDK.
FirebaseAuth.getInstance().currentUser returnează un obiect FirebaseUser dacă sesiunea este activă sau null dacă utilizatorul s-a deconectat. FirebaseUser conține UID, e-mail, displayName, photoUrl, phoneNumber, providerData și lista de claim-uri. După actualizarea profilului (updateProfile), modificările sunt sincronizate automat cu serverul. Obiectul FirebaseUser este stocat în cache în memorie și actualizat la orice operațiune auth.
signInAnonymously — creează un utilizator temporar fără înregistrare. Utilizatorii anonimi au UID, dar nu au e-mail, nume sau furnizor. Acest lucru este util pentru aplicațiile în care conținutul este disponibil înainte de înregistrare (coș, favorite, istoric). Când utilizatorul decide să se înregistreze, contul anonim este asociat cu unul permanent prin linkWithCredential. În tariful Spark există o limită de 10 mii de autentificări anonime pe zi.
Potrivit Google (2026), aproximativ 40% dintre utilizatori încep să lucreze cu aplicația în mod anonim, iar 25% dintre aceștia asociază ulterior contul anonim cu unul permanent. Aceasta înseamnă că autentificarea anonimă nu pierde date la conversia utilizatorului în utilizator înregistrat.
Metoda signOut() curăță sesiunea locală și șterge tokenul salvat. După apelarea signOut, currentUser devine null. Metoda delete() șterge complet contul utilizatorului din Firebase Auth — toți furnizorii asociați sunt deconectați, iar accesul la serviciile Firebase este blocat. Ștergerea utilizatorului este ireversibilă și necesită reautentificare (reauthenticate) pentru protecție împotriva ștergerii neautorizate a contului.
Custom Claims sunt atribute personalizate pe care Firebase Auth le adaugă în tokenul JWT al utilizatorului. Spre deosebire de câmpurile standard ale profilului (e-mail, displayName), claim-urile sunt disponibile doar pe partea serverului — prin Admin SDK sau prin regulile Firebase Security Rules pentru Firestore și Realtime Database. Claim-urile nu sunt vizibile direct pentru client, dar pot fi citite prin user.getIdTokenResult().
Roluri și permisiuni de acces — cel mai frecvent scenariu de aplicare a claim-urilor. Admin SDK permite atribuirea rolului „admin“, „moderator“ sau „premium_user“ printr-o mapare pe server. Aceste claim-uri ajung automat în token și pot fi utilizate în Firestore Security Rules pentru diferențierea accesului. Potrivit Google (2026), 65% dintre proiectele Firebase utilizează custom claims pentru gestionarea accesului la date în locul unui server separat de roluri.
// Admin SDK (Node.js) — atribuirea claims utilizatorului
const admin = require("firebase-admin")
await admin.auth().setCustomUserClaims(uid, {
role: "premium",
tier: "pro",
maxProjects: 50
})
// Citirea claims la client
val claims = FirebaseAuth.getInstance()
.currentUser?.getIdTokenResult(true)
?.await()?.claims
Custom claims au limitări: maxim 1000 de octeți pentru întregul obiect JSON claims per utilizator, nu mai mult de 20 de chei în obiect. Claim-urile nu sunt destinate stocării datelor dinamice — se actualizează doar prin Admin SDK și nu se sincronizează în timp real. După actualizarea claim-urilor, utilizatorul trebuie să reînnoiască tokenul (getIdTokenResult(true)) sau să se reconecteze la aplicație. Claim-urile nu sunt stocate în cache pe client — fiecare nouă autentificare primește tokenul actual de pe server.
Firebase Auth implementează protecție multinivel a conturilor: criptarea traficului (TLS 1.3), hashing-ul parolelor (bcrypt, cost 10), protecția împotriva brute-force cu Adaptive Pricing (încetinirea automată a răspunsului la activitate suspectă) și integrarea cu reCAPTCHA pentru autentificarea web. În plus, Firebase Auth dezactivează conturile la activitate suspectă — autentificări masive de pe IP-uri diferite, încercări de autentificare cu parolă greșită și adrese de e-mail suspecte.
Account Lockout — blocarea automată a contului după un anumit număr de încercări eșuate de autentificare. Pragul este configurabil în consola Firebase (implicit 10 încercări). Email Enumeration Protection — protecție împotriva căutării adreselor de e-mail. Când este activată, Firebase returnează aceeași eroare atât pentru e-mailul existent, cât și pentru cel inexistent. Trusted Domains — limitarea autentificării doar la utilizatorii cu domenii de e-mail specificate în setări.
Autentificarea personalizată suplimentară poate fi construită pe Custom Tokens — JWT semnate cu contul de serviciu Firebase. Clientul transmite tokenul personalizat către signInWithCustomToken(), Firebase verifică semnătura și creează o sesiune. Acest lucru permite integrarea Firebase Auth cu autentificarea server existentă (de exemplu, OAuth 2.0 al propriului server) fără duplicarea bazei de utilizatori. Tokenul trăiește 1 oră, după care SDK-ul reînnoiește automat sesiunea prin tokenul de reîmprospătare Firebase.
Întrebări frecvente
Firebase Auth este complet gratuit pentru toți furnizorii în tarifele Spark și Blaze. Limite: 10 mii de înregistrări anonime pe zi (Spark) și 10 mii de verificări SMS pe lună (Spark).
Utilizați linkWithCredential — metoda care asociază un nou furnizor cu utilizatorul anonim sau de e-mail curent. Utilizatorul se autentifică prin Google, apoi asociază e-mailul prin linkWithCredential.
Firebase Auth necesită internet pentru autentificare, dar stochează sesiunea în cache local. După autentificare, aplicația funcționează în mod offline până când este necesară reînnoirea tokenului (o dată pe oră).
În consola Firebase, accesați secțiunea Authentication, găsiți utilizatorul și faceți clic pe „Revoke Tokens“. Toate sesiunile active ale utilizatorului vor deveni invalide în 30 de minute.
Ștergerea contului prin consolă sau Admin SDK blochează imediat accesul la toate serviciile Firebase. Tokenii încetează să funcționeze. Datele din Firestore, Realtime Database și Storage nu sunt șterse automat.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și