Firebase Auth — mobil və veb tətbiqlərdə istifadəçilərin autentifikasiyası üçün Google bulud xidmətidir, e-poçt, telefon və sosial şəbəkələr vasitəsilə hazır giriş metodları təqdim edir. SDK sessiyanın tam dövrünü idarə edir: qeydiyyat, giriş, tokenin yenilənməsi və çıxış. Google, 2026-ya görə, Firebase Auth qutudan çıxarıldıqda 10-dan çox autentifikasiya provayderini dəstəkləyir. Xidmət autentifikasiya olunmuş istifadəçilərin sayına məhdudiyyət qoyulmadan pulsuz təqdim olunur.
Əsas məqamlar
Firebase Auth — Firebase SDK-nın bir hissəsi kimi təqdim olunan Google autentifikasiya backend xidmətidir. Hesab idarəetməsinin bütün server məntiqini öz üzərinə götürür: parol heşlərinin saxlanması, JWT tokenlərinin yaradılması, OAuth 2.0 və OpenID Connect axınlarının işlənməsi. Proqramçı öz auth-serverini qurmalı, refresh tokenləri idarə etməli və ya doğrulama protokollarını tətbiq etməli deyil — bunların hamısını Firebase edir.
Firebase Auth vahid istifadəçi anbarı ilə federativ arxitekturadan istifadə edir. Hər bir istifadəçi giriş provayderindən asılı olmayan unikal identifikator (UID) alır. Google və e-poçt vasitəsilə qeydiyyatdan keçərkən iki əlaqəli hesabla (providers) bir istifadəçi yaradılır. Firebase serverə əlavə sorğular olmadan klient tərəfdə hesabların əlaqələndirilməsini (account linking) avtomatik idarə edir.
Firebase Auth tokenləri UID, buraxılış vaxtı, bitmə vaxtı və fərdi claim-ləri olan payloada malik JWT (JSON Web Token)-dir. Giriş tokeni 1 saat, refresh tokeni isə qeyri-məhdud müddət yaşayır (Admin Console vasitəsilə ləğv edilə bilər). SDK Firebase xidmətlərinə hər HTTP sorğusunda tokeni avtomatik yeniləyir. Google (2026) məlumatına görə, Firebase Auth gündə 500 milyondan çox autentifikasiyaya xidmət göstərir.
Firebase Auth Spark tarifində (pulsuz) və Blaze tarifində (pay-as-you-go) tamamilə pulsuzdur. Yeganə məhdudiyyət Spark-da gündə 10 min anonim autentifikasiyadır (Blaze-də limit götürülüb). E-poçt/telefon və OAuth autentifikasiyalarının limiti yoxdur. Telefon doğrulaması üçün Spark ayda 10 min doğrulama, Blaze isə istifadəyə görə ödəniş təqdim edir (10 mindən sonra hər doğrulama $0.01). Bu, Firebase Auth-u bazarda ən əlçatan həllərdən birinə çevirir.
Firebase Auth qutudan çıxarıldıqda 12 autentifikasiya provayderini dəstəkləyir. Hər bir provayder müəyyən edilmiş axınla ayrıca identifikasiya xidməti kimi tətbiq olunur — proqramçı yalnız Credential obyekti yaratmalı və onu signInWithCredential-a göndərməlidir. Firebase avtomatik olaraq istifadəçinin yeni və ya mövcud olduğunu müəyyən edir və e-poçt təkrarlanması halında hesabları əlaqələndirməyi təklif edir.
E-poçt/Parol — Firebase serverlərində parol heşlərinin (bcrypt) saxlanması ilə əsas autentifikasiya metodu. Qeydiyyat, giriş, e-poçt vasitəsilə parolun sıfırlanması və e-poçtun təsdiqlənməsi dəstəklənir. Firebase avtomatik olaraq parolun mürəkkəbliyini yoxlayır (minimum 6 simvol) və N uğursuz cəhddən sonra girişi bloklaya bilər (brute-force-dan qorunma).
Google, Apple, Facebook, Twitter, Microsoft, Yahoo, GitHub — bütün OAuth 2.0 provayderləri Firebase konsolu vasitəsilə 5 dəqiqəyə konfiqurasiya olunur. Hər bir provayder üçün provayderin öz konsolunda Client ID və Client Secret əldə etmək lazımdır. Apple Sign In App Store-da tətbiqlər üçün məcburidir (Apple-ın 2020-ci ildən tələbi). Firebase Auth Apple Sign In axınını JWT doğrulaması ilə tam dəstəkləyir.
| Provayder | Protokol | Client Secret tələb olunur |
|---|---|---|
| OAuth 2.0 | Xeyr | |
| Apple | OAuth 2.0 + OpenID | Bəli |
| OAuth 2.0 | Bəli | |
| OAuth 1.0a | Bəli | |
| GitHub | OAuth 2.0 | Bəli |
Phone Auth — istifadəçinin telefon nömrəsinə göndərilən SMS kodu ilə autentifikasiya. Firebase kodu klaviaturadan daxil etmədən avtomatik oxumaq üçün Silent APN (iOS) və ya SMS Retriever API (Android) istifadə edir. Android-də SMS Retriever API yalnız Google Play Services olan cihazlarda işləyir. SMS-in mövcud olmadığı regionlar üçün Firebase ehtiyat olaraq reCAPTCHA doğrulamasını dəstəkləyir. Telefon autentifikasiyası nömrəyə məcburi bağlanma tələb edən tətbiqlər — yemək çatdırılması, taksi, bankçılıq üçün kritikdir.
Firebase Auth-un qoşulması Android-də build.gradle-a firebase-auth-ktx asılılığının əlavə edilməsini və Firebase App-in işə salınmasını (Google Services plugin vasitəsilə avtomatik yerinə yetirilir) tələb edir. Bundan sonra FirebaseAuth obyekti statik getInstance() metodu vasitəsilə əlçatan olur — bütün tətbiq üçün sinqlton. Əlavə konfiqurasiya tələb olunmur.
// build.gradle (tətbiq səviyyəsi)
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 — qeydiyyat üçün əsas metoddur. E-poçt və parol qəbul edir, Firebase Auth-da istifadəçi yaradır və UID ilə AuthResult obyekti qaytarır. Əgər belə e-poçtu olan istifadəçi artıq mövcuddursa, Firebase ERROR_EMAIL_ALREADY_IN_USE xətası qaytarır. Uğurlu qeydiyyatdan sonra SDK avtomatik olaraq tokeni SharedPreferences-da saxlayır və tətbiqin növbəti açılışında signIn çağırmadan sessiyanı bərpa edir.
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)
}
}
}
Google Sign In üçün iki mərhələli proses istifadə olunur: Credential Manager (Android) və ya Google Sign-In SDK vasitəsilə ID Token əldə etmək, sonra tokeni Firebase credential-a ötürmək. Firebase tokeni öz serverində yoxlayır (imzanı Google RSA açarı ilə təsdiqləyir) və mövcud istifadəçini yaradır və ya qaytarır. Proses klientdə secret saxlamağı tələb etmir — bütün autentifikasiya tokenlərin kriptoqrafik doğrulaması ilə həyata keçirilir.
Firebase Auth sessiyanın həyat dövrünü avtomatik idarə edir. Girişdən sonra SDK refresh tokeni lokal yaddaşda saxlayır və tətbiqin hər yenidən başladılmasında signIn silently vasitəsilə sessiyanı bərpa edir. Proqramçı tokenin saxlanmasını, bitməsinin idarə edilməsini və ya yenilənməsini tətbiq etməli deyil — hamısını Firebase Auth SDK edir.
FirebaseAuth.getInstance().currentUser sessiya aktiv olduqda FirebaseUser obyekti, istifadəçi çıxış etdikdə isə null qaytarır. FirebaseUser UID, e-poçt, displayName, photoUrl, phoneNumber, providerData və claim-lər siyahısını ehtiva edir. Profil yenilənməsindən (updateProfile) sonra dəyişikliklər avtomatik serverlə sinxronlaşır. FirebaseUser obyekti yaddaşda keşlənir və istənilən auth əməliyyatlarında yenilənir.
signInAnonymously — qeydiyyatsız müvəqqəti istifadəçi yaradır. Anonim istifadəçilərin UID-si var, lakin e-poçtu, adı və ya provayderi yoxdur. Bu, məzmunun qeydiyyatdan əvvəl əlçatan olduğu tətbiqlər (səbət, seçilmişlər, tarixçə) üçün faydalıdır. İstifadəçi qeydiyyatdan keçmək qərarına gəldikdə, anonim hesab linkWithCredential vasitəsilə daimi hesabla əlaqələndirilir. Spark tarifində gündə 10 min anonim autentifikasiya limiti var.
Google (2026) məlumatına görə, istifadəçilərin təxminən 40%-i tətbiqlə anonim işə başlayır və onların 25%-i sonradan anonim hesabı daimi hesabla əlaqələndirir. Bu o deməkdir ki, anonim autentifikasiya istifadəçinin qeydiyyatdan keçmiş istifadəçiyə çevrilməsi zamanı məlumatları itirmir.
signOut() metodu lokal sessiyanı təmizləyir və saxlanmış tokeni silir. signOut çağırıldıqdan sonra currentUser null olur. delete() metodu istifadəçi hesabını Firebase Auth-dan tamamilə silir — bütün əlaqəli provayderlər ayrılır və Firebase xidmətlərinə giriş bloklanır. İstifadəçinin silinməsi geri qaytarıla bilməz və icazəsiz silinmədən qorunmaq üçün yenidən autentifikasiya (reauthenticate) tələb olunur.
Custom Claims — Firebase Auth-un istifadəçinin JWT tokeninə əlavə etdiyi fərdi atributlardır. Standart profil sahələrindən (e-poçt, displayName) fərqli olaraq, claim-lər yalnız server tərəfində — Admin SDK və ya Firestore və Realtime Database üçün Firebase Security Rules-dakı qaydalar vasitəsilə əlçatandır. Claim-lər klientə birbaşa görünmür, lakin user.getIdTokenResult() vasitəsilə oxuna bilər.
Rollar və giriş icazələri — claim-lərin ən çox yayılmış tətbiq ssenarisidir. Admin SDK serverdə map vasitəsilə “admin”, “moderator” və ya “premium_user” rolunu təyin etməyə imkan verir. Bu claim-lər avtomatik olaraq tokenə daxil olur və girişi məhdudlaşdırmaq üçün Firestore Security Rules-da istifadə edilə bilər. Google-a (2026) görə, Firebase layihələrinin 65%-i ayrıca rol serveri əvəzinə məlumat girişini idarə etmək üçün custom claim-lərdən istifadə edir.
// Admin SDK (Node.js) — istifadəçiyə claim-lərin təyin edilməsi
const admin = require("firebase-admin")
await admin.auth().setCustomUserClaims(uid, {
role: "premium",
tier: "pro",
maxProjects: 50
})
// Claim-lərin klient tərəfdə oxunması
val claims = FirebaseAuth.getInstance()
.currentUser?.getIdTokenResult(true)
?.await()?.claims
Custom claims-in məhdudiyyətləri var: istifadəçi başına bütün JSON claim obyekti üçün maksimum 1000 bayt, obyektdə 20-dən çox olmayan açar. Claim-lər dinamik məlumatların saxlanması üçün nəzərdə tutulmayıb — onlar yalnız Admin SDK vasitəsilə yenilənir və real vaxtda sinxronlaşmır. Claim-lər yeniləndikdən sonra istifadəçi tokeni yeniləməli (getIdTokenResult(true)) və ya tətbiqə yenidən daxil olmalıdır. Claim-lər klient tərəfdə keşlənmir — hər yeni giriş serverdən cari token alır.
Firebase Auth çoxsəviyyəli hesab qorunmasını tətbiq edir: trafikin şifrələnməsi (TLS 1.3), parol heşlənməsi (bcrypt, dəyər 10), Adaptive Pricing ilə brute-force-dan qorunma (şübhəli aktivlik zamanı cavabın avtomatik yavaşladılması) və veb giriş üçün reCAPTCHA inteqrasiyası. Əlavə olaraq Firebase Auth şübhəli aktivlik — müxtəlif IP-lərdən kütləvi girişlər, yanlış parolla giriş cəhdləri və şübhəli e-poçt ünvanları zamanı hesabları söndürür.
Account Lockout — müəyyən sayda uğursuz giriş cəhdindən sonra hesabın avtomatik bloklanması. Hədd Firebase konsolunda konfiqurasiya olunur (standart olaraq 10 cəhd). Email Enumeration Protection — e-poçt ünvanlarının axtarışından qorunma. Aktivləşdirildikdə Firebase həm mövcud, həm də mövcud olmayan e-poçt üçün eyni xətanı qaytarır. Trusted Domains — girişin yalnız parametrlərdə göstərilən e-poçt domenləri olan istifadəçilərlə məhdudlaşdırılması.
Əlavə xüsusi autentifikasiya Firebase xidmət hesabı ilə imzalanmış JWT olan Custom Tokens üzərində qurula bilər. Klient xüsusi tokeni signInWithCustomToken()-a ötürür, Firebase imzanı yoxlayır və sessiya yaradır. Bu, Firebase Auth-u mövcud server autentifikasiyası (məsələn, öz serverinin OAuth 2.0) ilə istifadəçi bazasını təkrarlamadan inteqrasiya etməyə imkan verir. Token 1 saat yaşayır, bundan sonra SDK Firebase refresh tokeni vasitəsilə sessiyanı avtomatik yeniləyir.
Tez-tez verilən suallar
Firebase Auth Spark və Blaze tariflərində bütün provayderlər üçün tamamilə pulsuzdur. Limitlər: gündə 10 min anonim qeydiyyat (Spark) və ayda 10 min SMS doğrulama (Spark).
linkWithCredential — yeni provayderi cari anonim və ya e-poçt istifadəçisinə bağlayan metoddan istifadə edin. İstifadəçi Google vasitəsilə daxil olur, sonra linkWithCredential vasitəsilə e-poçtunu əlaqələndirir.
Firebase Auth giriş üçün internet tələb edir, lakin sessiyanı lokal olaraq keşləyir. Girişdən sonra tətbiq tokenin yenilənməsi tələb olunana qədər (saatda bir dəfə) oflayn rejimdə işləyir.
Firebase konsolunda Authentication bölməsinə keçin, istifadəçini tapın və “Revoke Tokens” düyməsini sıxın. İstifadəçinin bütün aktiv sessiyaları 30 dəqiqə ərzində etibarsız olacaq.
Hesabın silinməsi konsol və ya Admin SDK vasitəsilə bütün Firebase xidmətlərinə girişi dərhal bloklayır. Tokenlər işləməyi dayandırır. Firestore, Realtime Database və Storage-dəki məlumatlar avtomatik silinmir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun