Firebase Auth — mobil va veb-ilovalarda foydalanuvchilarni autentifikatsiya qilish uchun Google bulut xizmati bo‘lib, elektron pochta, telefon va ijtimoiy tarmoqlar orqali tayyor kirish usullarini taqdim etadi. SDK sessiyaning to‘liq siklini boshqaradi: ro‘yxatdan o‘tish, kirish, tokenni yangilash va chiqish. Google, 2026 ma‘lumotlariga ko‘ra, Firebase Auth qutidan chiqqanda 10 dan ortiq autentifikatsiya provayderlarini qo‘llab-quvvatlaydi. Xizmat autentifikatsiya qilingan foydalanuvchilar soni cheklanmagan holda bepul taqdim etiladi.
Asosiy ma‘lumotlar
Firebase Auth — Firebase SDK tarkibida taqdim etiladigan Google autentifikatsiya backend xizmati. U hisobni boshqarishning barcha server mantig‘ini o‘z zimmasiga oladi: parol heshlarini saqlash, JWT tokenlarini yaratish, OAuth 2.0 va OpenID Connect oqimlarini qayta ishlash. Dasturchi o‘z auth-serverini joylashtirishi, refresh-tokenlarni boshqarishi yoki tekshirish protokollarini amalga oshirishi shart emas — bularning hammasini Firebase bajaradi.
Firebase Auth yagona foydalanuvchi ombori bilan federativ arxitekturadan foydalanadi. Har bir foydalanuvchi kirish provayderiga bog‘liq bo‘lmagan noyob identifikator (UID) oladi. Google va elektron pochta orqali ro‘yxatdan o‘tishda ikkita bog‘langan hisob (providers) bilan bitta foydalanuvchi yaratiladi. Firebase serverga qo‘shimcha so‘rovlarsiz mijoz tomonida hisoblarni bog‘lashni (account linking) avtomatik boshqaradi.
Firebase Auth tokenlari UID, chiqarilgan vaqt, amal qilish muddati va maxsus claim-larni o‘z ichiga olgan payloadga ega JWT (JSON Web Token) dir. Kirish tokeni 1 soat, refresh tokeni esa cheksiz muddat yashaydi (Admin Console orqali bekor qilinishi mumkin). SDK Firebase xizmatlariga har bir HTTP so‘rovida tokenni avtomatik yangilaydi. Google (2026) ma‘lumotlariga ko‘ra, Firebase Auth kuniga 500 milliondan ortiq autentifikatsiyani amalga oshiradi.
Firebase Auth Spark tarifida (bepul) va Blaze tarifida (pay-as-you-go) to‘liq bepul. Yagona cheklov — Spark-da kuniga 10 ming anonim autentifikatsiya (Blaze-da cheklov olib tashlangan). Elektron pochta/telefon va OAuth autentifikatsiyalarida cheklov yo‘q. Telefon tekshiruvi uchun Spark oyiga 10 ming tekshiruv, Blaze esa foydalanishga qarab to‘lovni taklif qiladi (10 mingdan keyin har bir tekshiruv $0.01). Bu Firebase Auth-ni bozordagi eng qulay yechimlardan biriga aylantiradi.
Firebase Auth qutidan chiqqanda 12 autentifikatsiya provayderini qo‘llab-quvvatlaydi. Har bir provayder oldindan belgilangan oqim bilan alohida identifikatsiya xizmati sifatida amalga oshirilgan — dasturchi faqat Credential obyektini yaratib, uni signInWithCredential-ga yuborishi kerak. Firebase avtomatik ravishda foydalanuvchi yangi yoki mavjudligini aniqlaydi va elektron pochta takrorlanganda hisoblarni bog‘lashni taklif qiladi.
Elektron pochta/Parol — Firebase serverlarida parol heshlarini (bcrypt) saqlash bilan asosiy autentifikatsiya usuli. Ro‘yxatdan o‘tish, kirish, elektron pochta orqali parolni tiklash va elektron pochtani tasdiqlash qo‘llab-quvvatlanadi. Firebase avtomatik ravishda parolning murakkabligini tekshiradi (kamida 6 belgi) va N muvaffaqiyatsiz urinishdan keyin kirishni bloklashi mumkin (brute-force himoyasi).
Google, Apple, Facebook, Twitter, Microsoft, Yahoo, GitHub — barcha OAuth 2.0 provayderlari Firebase konsoli orqali 5 daqiqada sozlanadi. Har bir provayder uchun provayderning o‘z konsolida Client ID va Client Secret olish kerak. Apple Sign In App Store ilovalari uchun majburiy (Apple talabi 2020 yildan). Firebase Auth Apple Sign In oqimini JWT tekshiruvi bilan to‘liq qo‘llab-quvvatlaydi.
| Provayder | Protokol | Client Secret talab qiladi |
|---|---|---|
| OAuth 2.0 | Yo‘q | |
| Apple | OAuth 2.0 + OpenID | Ha |
| OAuth 2.0 | Ha | |
| OAuth 1.0a | Ha | |
| GitHub | OAuth 2.0 | Ha |
Phone Auth — foydalanuvchining telefon raqamiga yuborilgan SMS kod orqali autentifikatsiya. Firebase kodni klaviaturadan kiritmasdan avtomatik o‘qish uchun Silent APN (iOS) yoki SMS Retriever API (Android) dan foydalanadi. Android-da SMS Retriever API faqat Google Play Services o‘rnatilgan qurilmalarda ishlaydi. SMS mavjud bo‘lmagan hududlar uchun Firebase zaxira sifatida reCAPTCHA tekshiruvini qo‘llab-quvvatlaydi. Telefon autentifikatsiyasi raqamga majburiy bog‘lanish talab qiladigan ilovalar — ovqat yetkazish, taksi, bank ishi uchun juda muhimdir.
Firebase Auth-ni ulash Android-da build.gradle-ga firebase-auth-ktx bog‘liqligini qo‘shish va Firebase App-ni ishga tushirishni (Google Services plugin orqali avtomatik amalga oshiriladi) talab qiladi. Shundan so‘ng, FirebaseAuth obyekti statik getInstance() metodi orqali mavjud bo‘ladi — butun ilova uchun singleton. Qo‘shimcha konfiguratsiya talab qilinmaydi.
// build.gradle (ilova darajasi)
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 — ro‘yxatdan o‘tish uchun asosiy usul. Elektron pochta va parolni qabul qiladi, Firebase Auth-da foydalanuvchi yaratadi va UID bilan AuthResult obyektini qaytaradi. Agar bunday elektron pochtaga ega foydalanuvchi allaqachon mavjud bo‘lsa, Firebase ERROR_EMAIL_ALREADY_IN_USE xatosini qaytaradi. Muvaffaqiyatli ro‘yxatdan o‘tgandan so‘ng, SDK avtomatik ravishda tokenni SharedPreferences-da saqlaydi va ilova keyingi ishga tushganda signIn chaqirmasdan sessiyani tiklaydi.
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 uchun ikki bosqichli jarayon qo‘llaniladi: Credential Manager (Android) yoki Google Sign-In SDK orqali ID Token olish, so‘ngra tokenni Firebase credential-ga uzatish. Firebase tokenni o‘z serverida tekshiradi (imzoni Google RSA kaliti bilan tasdiqlaydi) va mavjud foydalanuvchini yaratadi yoki qaytaradi. Jarayon mijozda secret saqlashni talab qilmaydi — barcha autentifikatsiya tokenlarning kriptografik tekshiruvi orqali amalga oshiriladi.
Firebase Auth sessiyaning hayot sikli bilan avtomatik boshqaradi. Kirishdan so‘ng, SDK refresh tokenini lokal xotirada saqlaydi va ilova har qayta ishga tushirilganda signIn silently orqali sessiyani tiklaydi. Dasturchi token saqlashni, uning amal qilish muddatini boshqarishni yoki yangilashni amalga oshirishi shart emas — hammasini Firebase Auth SDK bajaradi.
FirebaseAuth.getInstance().currentUser sessiya faol bo‘lsa FirebaseUser obyektini, foydalanuvchi chiqib ketgan bo‘lsa null qaytaradi. FirebaseUser UID, elektron pochta, displayName, photoUrl, phoneNumber, providerData va claim-lar ro‘yxatini o‘z ichiga oladi. Profil yangilangandan so‘ng (updateProfile) o‘zgarishlar avtomatik ravishda server bilan sinxronlanadi. FirebaseUser obyekti xotirada keshlanadi va har qanday auth operatsiyalarida yangilanadi.
signInAnonymously — ro‘yxatdan o‘tmasdan vaqtinchalik foydalanuvchi yaratadi. Anonim foydalanuvchilar UID ga ega, ammo elektron pochta, ism yoki provayderga ega emas. Bu kontent ro‘yxatdan o‘tishdan oldin mavjud bo‘lgan ilovalar (savat, sevimlilar, tarix) uchun foydalidir. Foydalanuvchi ro‘yxatdan o‘tishga qaror qilganda, anonim hisob linkWithCredential orqali doimiy hisob bilan bog‘lanadi. Spark tarifida kuniga 10 ming anonim autentifikatsiya cheklovi mavjud.
Google (2026) ma‘lumotlariga ko‘ra, foydalanuvchilarning taxminan 40% ilova bilan anonim ishlashni boshlaydi va ularning 25% keyinchalik anonim hisobni doimiy hisob bilan bog‘laydi. Bu anonim autentifikatsiya foydalanuvchini ro‘yxatdan o‘tgan foydalanuvchiga aylantirishda ma‘lumotlarni yo‘qotmasligini anglatadi.
signOut() metodi lokal sessiyani tozalaydi va saqlangan tokeni o‘chiradi. signOut chaqirilgandan so‘ng currentUser null bo‘ladi. delete() metodi foydalanuvchi hisobini Firebase Auth-dan butunlay o‘chiradi — barcha bog‘langan provayderlar uziladi va Firebase xizmatlariga kirish bloklanadi. Foydalanuvchini o‘chirish qaytarib bo‘lmaydi va ruxsatsiz o‘chirishdan himoya qilish uchun qayta autentifikatsiya (reauthenticate) talab qiladi.
Custom Claims — Firebase Auth foydalanuvchining JWT tokeniga qo‘shadigan maxsus atributlardir. Standart profil maydonlaridan (elektron pochta, displayName) farqli o‘laroq, claim-lar faqat server tomonida — Admin SDK yoki Firestore va Realtime Database uchun Firebase Security Rules qoidalari orqali mavjud. Claim-lar mijozga to‘g‘ridan-to‘g‘ri ko‘rinmaydi, lekin user.getIdTokenResult() orqali o‘qilishi mumkin.
Rollar va kirish ruxsatlari — claim-larning eng keng tarqalgan qo‘llanish stsenariysi. Admin SDK serverdagi map orqali “admin”, “moderator” yoki “premium_user” rolini belgilash imkonini beradi. Bu claim-lar avtomatik ravishda token ichiga tushadi va kirishni cheklash uchun Firestore Security Rules da ishlatilishi mumkin. Google (2026) ma‘lumotlariga ko‘ra, Firebase loyihalarining 65% alohida rol serveri o‘rniga ma‘lumotlarga kirishni boshqarish uchun custom claim-lardan foydalanadi.
// Admin SDK (Node.js) — foydalanuvchiga claim-larni tayinlash
const admin = require("firebase-admin")
await admin.auth().setCustomUserClaims(uid, {
role: "premium",
tier: "pro",
maxProjects: 50
})
// Claim-larni mijozda o‘qish
val claims = FirebaseAuth.getInstance()
.currentUser?.getIdTokenResult(true)
?.await()?.claims
Custom claims cheklovlarga ega: foydalanuvchi uchun butun JSON claims obyekti uchun maksimal 1000 bayt, obyektda 20 dan ortiq bo‘lmagan kalit. Claim-lar dinamik ma‘lumotlarni saqlash uchun mo‘ljallanmagan — ular faqat Admin SDK orqali yangilanadi va real vaqtda sinxronlanmaydi. Claim-lar yangilangandan so‘ng, foydalanuvchi tokenni yangilashi (getIdTokenResult(true)) yoki ilovaga qayta kirishi kerak. Claim-lar mijoz tomonida keshlanmaydi — har bir yangi kirish serverdan joriy tokenni oladi.
Firebase Auth ko‘p bosqichli hisob himoyasini amalga oshiradi: trafikni shifrlash (TLS 1.3), parol heshlash (bcrypt, qiymat 10), Adaptive Pricing bilan brute-force himoyasi (shubhali faollikda javobni avtomatik sekinlashtirish) va veb kirish uchun reCAPTCHA integratsiyasi. Qo‘shimcha ravishda, Firebase Auth shubhali faollik — turli IP-lardan ommaviy kirishlar, noto‘g‘ri parol bilan kirish urinishlari va shubhali elektron pochta manzillari aniqlanganda hisoblarni o‘chiradi.
Account Lockout — ma‘lum miqdordagi muvaffaqiyatsiz kirish urinishlaridan so‘ng hisobni avtomatik bloklash. Chegara Firebase konsolida sozlanadi (standart 10 urinish). Email Enumeration Protection — elektron pochta manzillarini qidirishdan himoya. Yoqilganda, Firebase mavjud va mavjud bo‘lmagan elektron pochta uchun bir xil xatoni qaytaradi. Trusted Domains — kirishni faqat sozlamalarda ko‘rsatilgan elektron pochta domenlariga ega foydalanuvchilar bilan cheklash.
Qo‘shimcha maxsus autentifikatsiya Custom Tokens — Firebase xizmat hisobi bilan imzolangan JWT — ustida qurilishi mumkin. Mijoz maxsus tokenni signInWithCustomToken()-ga yuboradi, Firebase imzoni tekshiradi va sessiya yaratadi. Bu Firebase Auth-ni mavjud server autentifikatsiyasi (masalan, o‘z serverining OAuth 2.0) bilan foydalanuvchi bazasini takrorlamasdan integratsiya qilish imkonini beradi. Token 1 soat yashaydi, shundan so‘ng SDK Firebase refresh tokeni orqali sessiyani avtomatik yangilaydi.
Tez-tez beriladigan savollar
Firebase Auth Spark va Blaze tariflarida barcha provayderlar uchun to‘liq bepul. Cheklovlar: kuniga 10 ming anonim ro‘yxatdan o‘tish (Spark) va oyiga 10 ming SMS tekshiruvi (Spark).
linkWithCredential — yangi provayderni joriy anonim yoki elektron pochta foydalanuvchisiga bog‘laydigan usuldan foydalaning. Foydalanuvchi Google orqali kiradi, so‘ngra linkWithCredential orqali elektron pochtasini bog‘laydi.
Firebase Auth kirish uchun internet talab qiladi, lekin sessiyani lokal keshlaydi. Kirishdan so‘ng, ilova tokenni yangilash talab qilinmaguncha (soatda bir marta) oflayn rejimda ishlaydi.
Firebase konsolida Authentication bo‘limiga o‘ting, foydalanuvchini toping va “Revoke Tokens” tugmasini bosing. Foydalanuvchining barcha faol sessiyalari 30 daqiqa ichida bekor qilinadi.
Hisobni o‘chirish konsol yoki Admin SDK orqali barcha Firebase xizmatlariga kirishni darhol bloklaydi. Tokenlar ishlashni to‘xtatadi. Firestore, Realtime Database va Storage-dagi ma‘lumotlar avtomatik o‘chirilmaydi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.