Push-bildirishnomalarda Registration Token: nima, olish usullari va yangilanishi

Muallif: IT Sectr Nashr etilgan: 2026-03-21 O'qish vaqti: 8 daq

Registration Token — bu Firebase Cloud Messaging (FCM) tomonidan push-bildirishnomalarni yetkazib berish üçün foydalaniladigan noyob qurilma identifikatoridir. Har bir ilova har bir qurilmada o'z tokenini oladi, usiz bildirishnomalarni yuborish mumkin emas. Firebase, 2025 ma'lumotlariga ko'ra, Registration Token ilovaning birinchi ishga tushirilishida avtomatik ravishda yaratiladi va muayyan sharoitlarda o'zgarishi mumkin.

Asosiy

  • Registration Token — FCM üçün ma'lum bir qurilmadagi ilova nusxasini identifikatsiya qiluvchi qator.
  • Token birinchi ishga tushirishda yoki ilova ma'lumotlari o'chirilgandan so'ng avtomatik yaratiladi.
  • FCM tokenni push-bildirishnomalarni to'g'ri qurilmaga yo'naltirish üçün ishlatadi.
  • Token o'zgarishi mumkin — ilova onNewToken orqali yangilanishlarga obuna bo'lishi kerak.
  • Bildirishnomalarni yuborish üçün server qismi barcha qurilmalarning joriy tokenlarini saqlashi kerak.

Registration Token nima

Registration Token — Firebase Cloud Messaging har bir ilova nusxasiga tayinlaydigan 4096 belgigacha bo'lgan noyob qatordir. Token ilova, qurilma va qurilmadagi Google hisobi identifikatorlari asosida shakllantiriladi.

Tokenning tuzilishi va vazifasi

Registration Token Base64 formatida kodlangan tasodifiy belgilar ketma-ketligidan iborat. FCM bu tokenni yetkazib berish manzili sifatida ishlatadi — server qismi bildirishnomani tokenga yuboradi, FCM esa uni aniq qurilmaga yo'naltiradi. Tokensiz push-bildirishnomani ma'lum bir foydalanuvchiga yo'naltirib bo'lmaydi.

Boshqa identifikatorlardan farqlari

Registration Token Device ID (IMEI) yoki Advertising ID bilan aralashtirilmasligi kerak. Device ID qurilmaning apparat identifikatori, Advertising ID esa reklama maqsadlarida ishlatiladi. Registration Token aynan ilova va qurilma kombinatsiyasiga bog'liq bo'lib, bitta qurilmada turli ilovalar üçün bir nechta token bo'lishi mumkin.

IdentifikatorVazifaO'zgaruvchanlik
Registration TokenFCM push-bildirishnomalarini yetkazib berishO'zgarishi mumkin
Device ID (IMEI)Qurilmani identifikatsiya qilishDoimiy
Advertising IDMaqsadli reklamaQayta tiklanishi mumkin
Instance IDEskirgan Firebase mexanizmiO'chirishda o'zgarardi

Token qachon haqiqiy emas deb hisoblanadi

FCM Registration Tokenni bir nechta holatlarda haqiqiy emas deb topishi mumkin. Agar ilova qurilmadan o'chirilsa, token avtomatik ravishda bekor qilinadi. Zaxira nusxadan yangi qurilmaga ma'lumotlarni tiklashda eski token ishlamay qoladi. Firebase eskirgan tokenga bildirishnoma yuborishga urinishda UNREGISTERED holatini qaytaradi.

FCM Registration Tokenni qanday tayinlaydi

Firebase Cloud Messaging Registration Tokenni ilovaning birinchi ishga tushirilishida, getToken() metodi chaqirilganda yaratadi. Jarayon Google Play Services ma'lumotlarini tekshirish va ilovani Firebase infratuzilmasida ro'yxatdan o'tkazishni o'z ichiga oladi.

Qurilmani ro'yxatdan o'tkazish jarayoni

Qurilma FCM SDK bilan integratsiyalangan ilovani birinchi marta ishga tushirganda quyidagilar sodir bo'ladi. Firebase SDK qurilmada Google Play Services mavjudligini tekshiradi. So'ngra SDK ilova identifikatori va qurilma haqida ma'lumotni uzatgan holda Firebase serverlariga so'rov yuboradi. Firebase serveri yangi token yaratadi va uni ilovaga qaytaradi.

FCM ning ichki mexanikasi

FCM uzoq muddatli ulanishlarga asoslangan arxitekturadan foydalanadi. Registration Token olingandan so'ng, qurilma Android-da STOMP protokoli yoki iOS-da APNs kanali orqali Firebase serverlari bilan doimiy ulanish o'rnatadi. Server qismi tokenga bildirishnoma yuborganda, FCM qurilmani token orqali topadi va yukni uzatadi.

Tokenni qayta yaratish shartlari

Registration Token FCM tomonidan quyidagi hollarda qayta yaratilishi mumkin. Ilovani zaxira nusxadan yangi qurilmada tiklashda. Ilovani o'chirish va qayta o'rnatishda. Tizim sozlamalari orqali ilova ma'lumotlarini tozalashda. Qurilmada boshqa Google hisobiga kirishda. Firebase o'zgarishlarni kuzatish üçün har doim onNewToken callbackini qayta ishlashni tavsiya qiladi.

Android-da Registration Token olish

Android-da Registration Token Firebase Messaging SDK orqali olinadi. Jarayon turli SDK versiyalari üçün farq qiladi — yangi versiyalarda eskirgan FirebaseInstanceId o'rniga FirebaseInstallations API ishlatiladi.

FirebaseInstallations orqali zamonaviy usul

Firebase SDK 21.0.0 versiyasidan boshlab, getToken() metodi FirebaseMessaging orqali chaqiriladi. Bu yondashuv tokenning hayot aylanishini avtomatik boshqaradi va uning yangilanishlariga obuna bo'ladi.

kotlin
class MyFirebaseMessagingService : FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendRegistrationToServer(token)
    }

    private fun sendRegistrationToServer(token: String) {
        // Tokenni server qismiga yuborish
        Log.d("FCM", "New token: $token")
    }

    init {
        FirebaseMessaging.getInstance()
            .getToken()
            .addOnCompleteListener { task ->
                if (!task.isSuccessful) {
                    Log.w("FCM", "FCM tokenini olish muvaffaqiyatsiz tugadi")
                    return@addOnCompleteListener
                }
                val token = task.result
                sendRegistrationToServer(token)
            }
    }
}

Activity yoki ViewModel da tokenni qayta ishlash

Ba'zi stsenariylarda token xizmatda emas, balki to'g'ridan-to'g'ri Activity yoki ViewModel da kerak bo'ladi. Buning üçün getToken() ilova hayot aylanishining mos joyida chaqirilishi mumkin. Bu metodni asinxronlikni boshqarmasdan asosiy oqimdan chaqirmaslik muhim.

kotlin
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        getFCMToken()
    }

    private fun getFCMToken() {
        FirebaseMessaging.getInstance().getToken()
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    val token = task.result
                    Log.d("FCM", "Token: $token")
                }
            }
    }
}

Eskirgan FirebaseInstanceId metodi

Firebase SDK ning eski versiyalarida (20.x dan oldin) token FirebaseInstanceId.getInstance().getToken() orqali olingan. Bu metod deprecated deb belgilangan va yangi loyihalarda foydalanish tavsiya etilmaydi. Legacy kodni qo'llab-quvvatlovchi dasturchilar FirebaseInstallations API ga o'tishlari kerak.

iOS-da Registration Token olish

iOS-da Registration Token olish jarayoni arxitektur jihatidan farq qiladi — FCM Apple Push Notification service (APNs) orqali ishlaydi. Firebase SDK APNs dan noyob device token oladi, uni FCM formatiga o'zgartiradi va ilovaga uzatadi.

APNs sozlamalari va token olish

FCM ning iOS-da ishlashi üçün Firebase konsolida APNs sertifikati yoki kalit sozlanishi kerak. Ilova UNUserNotificationCenter orqali bildirishnomalarga ruxsat so'rashi kerak. APNs tokeni olingandan so'ng, Firebase SDK avtomatik ravishda Registration Tokenni yaratadi.

swift
import FirebaseMessaging
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(
        application: UIApplication,
        didFinishLaunchingWithOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        Messaging.messaging().delegate = self
        requestNotificationAuthorization()
        return true
    }

    private func requestNotificationAuthorization() {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .sound, .badge])
    }
}

extension AppDelegate: MessagingDelegate {
    func messaging(
        messaging: Messaging,
        didReceiveRegistrationToken fcmToken: String?
    ) {
        Log.d("FCM", "Token: \(fcmToken ?? "")")
        sendTokenToServer(token: fcmToken)
    }
}

iOS va Android tokenlari o'rtasidagi farqlar

iOS-da Registration Token Android tokeniga nisbatan kichikroq o'lchamga ega, chunki u APNs device token ga asoslanadi. Firebase SDK APNs tokeni o'zgarganda FCM tokenini avtomatik yangilaydi, bu qurilmani zaxira nusxadan tiklash yoki ilovani qayta o'rnatishda sodir bo'ladi.

Registration Tokenni yangilash va boshqarish

Hayot aylanishini boshqarish Registration Token push-bildirishnomalarini barqaror yetkazib berish üçün juda muhim vazifadir. Agar server qismi eskirgan token saqlasa, bildirishnomalar yetkazilmaydi va Firebase UNREGISTERED xatosini qaytaradi.

Token o'zgarishlarini kuzatish

Firebase SDK token o'zgarishlarini kuzatish üçün ikkita mexanizmni taqdim etadi. Android-da FirebaseMessagingService da callback onNewToken ishlatiladi. iOS-da — delegat messaging:didReceiveRegistrationToken. Ikkalasi ham har bir token yangilanishida chaqiriladi.

kotlin
// Tokenni SharedPreferences-da saqlash va serverga yuborish
class TokenManager(private val context: Context) {

    companion object {
        private const val PREFS_TOKEN_KEY = "fcm_registration_token"
    }

    fun saveToken(token: String) {
        val prefs = PreferenceManager
            .getDefaultSharedPreferences(context)
        prefs.edit().putString(PREFS_TOKEN_KEY, token).apply()
    }

    fun getSavedToken(): String? {
        val prefs = PreferenceManager
            .getDefaultSharedPreferences(context)
        return prefs.getString(PREFS_TOKEN_KEY, null)
    }
}

Serverda tokenlarni saqlash strategiyasi

Server qismi Registration Tokenni foydalanuvchi identifikatori bilan bog'lab saqlashi kerak. Token yangilanganda, mijoz serverga yangi token yuboradi va server eskisini almashtiradi. Tokenlar tarixini saqlash tavsiya etiladi: agar bildirishnoma yangi tokenga yetkazilmagan bo'lsa, eskisini sinab ko'rish mumkin.

Token bilan ishlashda xatolarni boshqarish

Firebase bir nechta hollarda token olish xatosini qaytarishi mumkin. Qurilmada Google Play Services yo'qligi — token olinmaydi. FCM so'rovlari limitidan oshib ketish — qayta urinishlarda eksponensial kechikish qo'llanilishi kerak. Tokenning amal qilish muddati tugashi — SDK avtomatik ravishda yangisini so'raydi.

VaziyatNatijaDasturchining harakati
Ilovani o'chirishToken bekor qilinadiTokenni bazadan o'chiring
Zaxira nusxadan tiklashYangi tokenBazada yangilang
Google Play Services ni tiklashToken qayta yaratildionNewToken ni qayta ishlang
Token muddati tugashiAvtomatik yangilanishYangilanishlarga obuna bo'ling

Ko'p so'raladigan savollar

Registration Token olinmasa nima qilish kerak?

Qurilmada Google Play Services mavjudligini, google-services.json faylining to'g'riligini va Firebase SDK versiyasini tekshiring. Ilovaning internetga kirish ruxsati borligiga ishonch hosil qiling.

Registration Token qanchalik tez-tez o'zgaradi?

Token ilovani o'chirish va qayta o'rnatish, ma'lumotlarni tozalash, zaxira nusxadan tiklash yoki boshqa Google hisobiga kirishda o'zgarishi mumkin. Qattiq vaqt oralig'i yo'q.

Bitta qurilmada bir nechta Registration Token bo'lishi mumkinmi?

Ha, qurilmadagi har bir ilova o'z FCM tokenini oladi. Agar qurilmada Firebase bilan uchta ilova o'rnatilgan bo'lsa, har biri o'zining noyob Registration Tokeniga ega bo'ladi.

Registration Token hali ham amalda ekanligini qanday tekshirish mumkin?

Firebase konsoli yoki FCM HTTP API orqali sinov bildirishnomasini yuboring. Agar token amalda bo'lmasa, API UNREGISTERED yoki NOT_FOUND xatosini qaytaradi.

Registration Tokenni serverda saqlash xavfsizmi?

Registration Token maxfiy kalit emas, lekin uning sizib chiqishi foydalanuvchining qurilmasiga bildirishnomalar yuborish imkonini beradi. Tokenlarni himoyalangan ma'lumotlar bazasida saqlang va uzatish üçün HTTPS dan foydalaning.

Xulosalar

  • Registration Token — Firebase Cloud Messaging orqali push-bildirishnomalarni yetkazib berish üçün majburiy element.
  • Token FCM SDK bilan ilovaning birinchi ishga tushirilishida avtomatik yaratiladi.
  • Android-da token FirebaseMessaging.getInstance().getToken() orqali olinadi.
  • iOS-da token APNs device token ga asoslanadi va MessagingDelegate delegati orqali uzatiladi.
  • Token o'zgarishi mumkin — ilova onNewToken callbackini qayta ishlashi kerak.
  • Server qismi joriy tokenlarni saqlashi va UNREGISTERED xatosida eskirganlarini o'chirishi kerak.
  • Ishonchli yetkazib berish üçün token o'zgarishlarini kuzatish va nosozliklarda qayta urinish mexanizmini joriy qiling.

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.

Loyihani muhokama qilish

Shuningdek o'qing