Registration Token, Firebase Cloud Messaging (FCM) tərəfindən push bildirişlərinin çatdırılması üçün istifadə edilən unikal cihaz identifikatorudur. Hər tətbiq hər cihazda öz tokenini alır, onun olmadan bildiriş göndərmək mümkün deyil. Firebase, 2025 məlumatlarına görə, Registration Token tətbiqin ilk işə salınması zamanı avtomatik yaradılır və müəyyən şərtlər daxilində dəyişə bilər.
Başlıca
Registration Token — Firebase Cloud Messaging-in hər tətbiq nüsxəsinə təyin etdiyi 4096 simvola qədər olan unikal sətirdir. Token tətbiqin, cihazın və cihazdakı Google hesabının identifikatoru əsasında formalaşdırılır.
Registration Token Base64 formatında kodlanmış təsadüfi simvol ardıcıllığından ibarətdir. FCM bu tokeni çatdırılma ünvanı kimi istifadə edir — server hissəsi tokenə bildiriş göndərir, FCM isə onu konkret cihaza yönləndirir. Token olmadan push bildirişini konkret istifadəçiyə ünvanlamaq mümkün deyil.
Registration Token Device ID (IMEI) və ya Advertising ID ilə qarışdırılmamalıdır. Device ID cihazın aparat identifikatorudur, Advertising ID isə reklam məqsədləri üçün istifadə olunur. Registration Token məhz tətbiq və cihaz kombinasiyasına bağlıdır, üstəlik bir cihaz müxtəlif tətbiqlər üçün bir neçə tokenə malik ola bilər.
| Identifikator | Təyinat | Dəyişkənlik |
|---|---|---|
| Registration Token | FCM push bildirişlərinin çatdırılması | Dəyişə bilər |
| Device ID (IMEI) | Cihazın identifikasiyası | Daimi |
| Advertising ID | Hədəfli reklam | Sıfırlana bilər |
| Instance ID | Köhnəlmiş Firebase mexanizmi | Silindikdə dəyişirdi |
FCM Registration Tokeni bir neçə halda etibarsız saya bilər. Tətbiq cihazdan silindikdə token avtomatik olaraq ləğv edilir. Ehtiyat nüsxədən yeni cihazda məlumat bərpa edilərkən köhnə token işləməyi dayandırır. Firebase köhnəlmiş tokenə bildiriş göndərməyə cəhd edərkən UNREGISTERED statusu qaytarır.
Firebase Cloud Messaging tətbiqin ilk işə salınması zamanı, getToken() metodu çağırıldıqda Registration Tokeni yaradır. Proses Google Play Services məlumatlarının yoxlanılması və tətbiqin Firebase infrastrukturunda qeydiyyatını əhatə edir.
Cihaz ilk dəfə FCM SDK ilə inteqrasiya olunmuş tətbiqi işə saldıqda aşağıdakılar baş verir. Firebase SDK cihazda Google Play Services-in mövcudluğunu yoxlayır. Sonra SDK tətbiq identifikatorunu və cihaz haqqında məlumatı ötürərək Firebase serverlərinə sorğu göndərir. Firebase serveri yeni token yaradır və onu tətbiqə qaytarır.
FCM uzunmüddətli əlaqələrə əsaslanan arxitekturadan istifadə edir. Registration Token alındıqdan sonra cihaz Android-də STOMP protokolu və ya iOS-da APNs kanalı vasitəsilə Firebase serverləri ilə daimi əlaqə qurur. Server hissəsi tokenə bildiriş göndərdikdə, FCM cihazı token üzrə tapır və yükü ötürür.
Registration Token FCM tərəfindən aşağıdakı hallarda yenidən yaradıla bilər. Tətbiqin ehtiyat nüsxədən yeni cihazda bərpa edilməsi. Tətbiqin silinməsi və yenidən quraşdırılması. Sistem parametrləri vasitəsilə tətbiq məlumatlarının təmizlənməsi. Cihazda başqa Google hesabına daxil olma. Firebase dəyişiklikləri izləmək üçün həmişə onNewToken callbakinin işlənməsini tövsiyə edir.
Androiddə Registration Token Firebase Messaging SDK vasitəsilə əldə edilir. Proses müxtəlif SDK versiyaları üçün fərqlənir — yeni versiyalarda köhnəlmiş FirebaseInstanceId əvəzinə FirebaseInstallations API istifadə olunur.
Firebase SDK versiyası 21.0.0-dan başlayaraq, getToken() metodu FirebaseMessaging vasitəsilə çağırılır. Bu yanaşma tokenin həyat dövriyyəsini avtomatik idarə edir və onun yenilənmələrinə abunə olur.
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendRegistrationToServer(token)
}
private fun sendRegistrationToServer(token: String) {
// Tokenin server hissəsinə göndərilməsi
Log.d("FCM", "Yeni token: $token")
}
init {
FirebaseMessaging.getInstance()
.getToken()
.addOnCompleteListener { task ->
if (!task.isSuccessful) {
Log.w("FCM", "FCM tokeninin alınması uğursuz oldu")
return@addOnCompleteListener
}
val token = task.result
sendRegistrationToServer(token)
}
}
}
Bəzi ssenarilərdə token xidmətdə deyil, birbaşa Activity və ya ViewModel-də tələb olunur. Bunun üçün getToken() tətbiqin həyat dövriyyəsinin uyğun yerində çağırıla bilər. Bu metodu asinxronluğu idarə etmədən əsas axından çağırmamaq vacibdir.
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")
}
}
}
}
Köhnə Firebase SDK versiyalarında (20.x-dən əvvəl) token FirebaseInstanceId.getInstance().getToken() vasitəsilə əldə edilirdi. Bu metod deprecated olaraq qeyd edilmişdir və yeni layihələrdə istifadəsi tövsiyə olunmur. Legacy-kodu dəstəkləyən tərtibatçılar FirebaseInstallations API-yə keçməlidirlər.
iOS-da Registration Tokenin əldə edilməsi prosesi arxitektonik olaraq fərqlənir — FCM Apple Push Notification service (APNs) vasitəsilə işləyir. Firebase SDK APNs-dən unikal device tokeni alır, onu FCM formatına çevirir və tətbiqə ötürür.
FCM-in iOS-da işləməsi üçün Firebase konsolunda APNs sertifikatı və ya açar konfiqurasiya edilməlidir. Tətbiq UNUserNotificationCenter vasitəsilə bildirişlərə icazə istəməlidir. APNs tokeni alındıqdan sonra Firebase SDK avtomatik olaraq Registration Tokeni yaradır.
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-da Registration Token Android tokeni ilə müqayisədə daha kiçik ölçüdədir, çünki APNs device token-inə əsaslanır. Firebase SDK APNs tokeni dəyişərkən FCM tokenini avtomatik yeniləyir, bu da cihazın ehtiyat nüsxədən bərpa edilməsi və ya tətbiqin yenidən quraşdırılması zamanı baş verir.
Həyat dövriyyəsinin idarə edilməsi Registration Token push bildirişlərinin sabit çatdırılması üçün kritik əhəmiyyət daşıyır. Server hissəsi köhnəlmiş token saxlayarsa, bildirişlər çatdırılmayacaq və Firebase UNREGISTERED xətası qaytaracaq.
Firebase SDK token dəyişikliklərini izləmək üçün iki mexanizm təqdim edir. Androiddə FirebaseMessagingService-də onNewToken callbacki istifadə olunur. iOS-da — messaging:didReceiveRegistrationToken delegatı. Hər ikisi tokenin hər yenilənməsində çağırılır.
// Tokenin SharedPreferences-də saxlanması və serverə göndərilməsi
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)
}
}
Server hissəsi Registration Tokeni istifadəçi identifikatoru ilə əlaqəli şəkildə saxlamalıdır. Token yenilənərkən müştəri serverə yeni token göndərir, server isə köhnəni əvəz edir. Tokenlərin tarixçəsini saxlamaq tövsiyə olunur: əgər bildiriş yeni tokenə çatdırılmayıbsa, köhnəni sınamaq olar.
Firebase bir neçə halda token əldə etmə xətası qaytara bilər. Cihazda Google Play Services-in olmaması — token əldə edilməyəcək. FCM sorğu limitinin aşılması — təkrarlanan cəhdlərdə eksponensial gecikmə tətbiq edilməlidir. Tokenin müddətinin bitməsi — SDK avtomatik olaraq yenisini istəyir.
| Vəziyyət | Nəticə | Tərtibatçının hərəkəti |
|---|---|---|
| Tətbiqin silinməsi | Token ləğv edilir | Tokeni bazadan silin |
| Ehtiyat nüsxədən bərpa | Yeni token | Bazada yeniləyin |
| Google Play Services-in sıfırlanması | Token yenidən yaradılır | onNewToken-i işləyin |
| Tokenin müddətinin bitməsi | Avtomatik yeniləmə | Yenilənmələrə abunə olun |
Tez-tez verilən suallar
Cihazda Google Play Services-in mövcudluğunu, google-services.json faylının düzgünlüyünü və Firebase SDK versiyasını yoxlayın. Tətbiqin internetə çıxış icazəsinin olduğuna əmin olun.
Token tətbiqin silinməsi və yenidən quraşdırılması, məlumatların təmizlənməsi, ehtiyat nüsxədən bərpa edilməsi və ya başqa Google hesabına daxil olma zamanı dəyişə bilər. Ciddi vaxt intervalı yoxdur.
Bəli, cihazdakı hər tətbiq öz FCM tokenini alır. Cihazda Firebase ilɓ üç tətbiq quraşdırılıbsa, hər birinin öz unikal Registration Tokeni olacaq.
Firebase konsolu və ya FCM HTTP API vasitəsilə test bildirişi göndərin. Token etibarsızdırsa, API UNREGISTERED və ya NOT_FOUND xətası qaytaracaq.
Registration Token gizli açar deyil, lakin onun sızması istifadəçinin cihazına bildirişlər göndərməyə imkan verir. Tokenləri qorunan bazada saxlayın və ötürülmə üçün HTTPS istifadə edin.
Nəticələr
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