Push bildirimlerinde Registration Token: nedir, alma ve güncelleme yöntemleri

Yazar: IT Sectr Yayınlanma: 2026-03-21 Okuma süresi: 8 dk

Registration Token, Firebase Cloud Messaging (FCM) tarafından push bildirimleri göndermek için kullanılan benzersiz bir cihaz tanımlayıcısıdır. Her cihazdaki her uygulama kendi token'ını alır ve bu token olmadan bildirim göndermek imkansızdır. Firebase, 2025'e göre, Registration Token uygulama ilk kez başlatıldığında otomatik olarak oluşturulur ve belirli koşullar altında değişebilir.

Önemli Noktalar

  • Registration Token, belirli bir cihazdaki uygulama örneğini FCM için tanımlayan bir dizedir.
  • Token, ilk başlatmada veya uygulama verileri silindikten sonra otomatik olarak oluşturulur.
  • FCM, push bildirimlerini doğru cihaza yönlendirmek için token'ı kullanır.
  • Token değişebilir — uygulama onNewToken aracılığıyla güncellemelere abone olmalıdır.
  • Bildirim göndermek için sunucu, tüm cihazların güncel token'larını saklamalıdır.

Registration Token Nedir

Registration Token, Firebase Cloud Messaging'in her uygulama örneğine atadığı 4096 karaktere kadar benzersiz bir dizedir. Token, uygulama kimliği, cihaz kimliği ve cihazdaki Google hesabı temel alınarak oluşturulur.

Token'ın Yapısı ve Amacı

Registration Token, Base64 formatında kodlanmış rastgele bir karakter dizisinden oluşur. FCM bu token'ı teslimat adresi olarak kullanır — sunucu token'a bir bildirim gönderir ve FCM bunu belirli cihaza yönlendirir. Token olmadan belirli bir kullanıcıya push bildirimi göndermek imkansızdır.

Diğer Tanımlayıcılardan Farkları

Registration Token, Device ID (IMEI) veya Advertising ID ile karıştırılmamalıdır. Device ID cihazın donanım tanımlayıcısıdır, Advertising ID ise reklam amaçları için kullanılır. Registration Token, uygulama ve cihaz kombinasyonuna bağlıdır ve bir cihaz farklı uygulamalar için birden fazla token'a sahip olabilir.

TanımlayıcıAmaçDeğişebilirlik
Registration TokenFCM push bildirimi teslimatıDeğişebilir
Device ID (IMEI)Donanım tanımlamaKalıcı
Advertising IDHedefli reklamSıfırlanabilir
Instance IDEski Firebase mekanizmasıSilindiğinde değişirdi

Token Ne Zaman Geçersiz Sayılır

FCM, Registration Token'ı çeşitli durumlarda geçersiz sayabilir. Uygulama cihazdan kaldırılırsa, token otomatik olarak iptal edilir. Yeni bir cihazda yedekten veri geri yüklenirken eski token çalışmayı durdurur. Ayrıca, güncel olmayan bir token'a bildirim göndermeye çalışırken Firebase UNREGISTERED durumu döndürür.

FCM Registration Token'ı Nasıl Atar

Firebase Cloud Messaging, uygulama ilk kez başlatıldığında ve getToken() metodu çağrıldığında Registration Token oluşturur. Süreç, Google Play Services kimlik bilgilerinin doğrulanmasını ve uygulamanın Firebase altyapısına kaydedilmesini içerir.

Cihaz Kayıt Süreci

Bir cihaz, entegre FCM SDK'ya sahip bir uygulamayı ilk kez çalıştırdığında şunlar olur. Firebase SDK, cihazda Google Play Services'in varlığını kontrol eder. Ardından SDK, uygulama kimliğini ve cihaz bilgilerini ileterek Firebase sunucularına bir istek gönderir. Firebase sunucusu yeni bir token oluşturur ve uygulamaya döndürür.

FCM'nin Dahili Mekaniği

FCM, uzun ömürlü bağlantılara dayalı bir mimari kullanır. Registration Token alındıktan sonra, cihaz Android'de STOMP protokolü veya iOS'te APNs kanalı aracılığıyla Firebase sunucularıyla kalıcı bir bağlantı kurar. Sunucu token'a bir bildirim gönderdiğinde, FCM token ile cihazı bulur ve yükü teslim eder.

Token Yeniden Oluşturma Koşulları

Registration Token aşağıdaki durumlarda FCM tarafından yeniden oluşturulabilir. Yeni bir cihazda yedekten uygulama geri yüklenirken. Uygulama silinip yeniden yüklendiğinde. Sistem ayarları aracılığıyla uygulama verileri temizlendiğinde. Cihazda farklı bir Google hesabına giriş yapıldığında. Firebase, değişiklikleri izlemek için her zaman onNewToken geri aramasının işlenmesini önerir.

Android'de Registration Token Alma

Android'de, Registration Token Firebase Messaging SDK aracılığıyla alınır. Süreç SDK sürümüne göre farklılık gösterir — yeni sürümler, kullanımdan kaldırılan FirebaseInstanceId yerine FirebaseInstallations API'sini kullanır.

FirebaseInstallations ile Modern Yöntem

Firebase SDK sürüm 21.0.0'dan itibaren, getToken() metodu FirebaseMessaging aracılığıyla çağrılır. Bu yaklaşım, token yaşam döngüsünü otomatik olarak yönetir ve güncellemelerine abone olur.

kotlin
class MyFirebaseMessagingService : FirebaseMessagingService() {

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

    private fun sendRegistrationToServer(token: String) {
        // Token'ı sunucuya gönderme
        Log.d("FCM", "New token: $token")
    }

    init {
        FirebaseMessaging.getInstance()
            .getToken()
            .addOnCompleteListener { task ->
                if (!task.isSuccessful) {
                    Log.w("FCM", "FCM token'ı alınamadı")
                    return@addOnCompleteListener
                }
                val token = task.result
                sendRegistrationToServer(token)
            }
    }
}

Activity veya ViewModel'de Token İşleme

Bazı senaryolarda, token serviste değil doğrudan bir Activity veya ViewModel'de gerekir. Bunun için, uygulama yaşam döngüsünde uygun bir noktada getToken() çağrılabilir. Eşzamansızlığı yönetmeden bu metodu ana iş parçacığından çağırmamak önemlidir.

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")
                }
            }
    }
}

Eski FirebaseInstanceId Yöntemi

Firebase SDK'nın eski sürümlerinde (20.x öncesi), token FirebaseInstanceId.getInstance().getToken() aracılığıyla alınırdı. Bu metod kullanımdan kaldırılmıştır ve yeni projelerde kullanılması önerilmez. Eski kodu koruyan geliştiriciler FirebaseInstallations API'sine geçiş yapmalıdır.

iOS'te Registration Token Alma

iOS'te, Registration Token alma süreci mimari olarak farklıdır — FCM, Apple Push Notification service (APNs) aracılığıyla çalışır. Firebase SDK, APNs'den benzersiz bir cihaz token'ı alır, FCM formatına dönüştürür ve uygulamaya iletir.

APNs Kurulumu ve Token Alma

iOS'te FCM kullanmak için Firebase konsolunda bir APNs sertifikası veya anahtarı yapılandırılmalıdır. Uygulama, UNUserNotificationCenter aracılığıyla bildirim izni istemelidir. APNs token'ı alındıktan sonra Firebase SDK otomatik olarak Registration Token'ı oluşturur.

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 ve Android Token'ları Arasındaki Farklar

iOS'teki Registration Token, APNs cihaz token'ına dayandığı için Android token'ına kıyasla daha küçük boyuttadır. Firebase SDK, APNs token'ı değiştiğinde FCM token'ını otomatik olarak günceller; bu, bir cihazın yedekten geri yüklenmesi veya uygulamanın yeniden yüklenmesi sırasında gerçekleşir.

Registration Token'ı Güncelleme ve Yönetme

Registration Token'ın yaşam döngüsünü yönetmek, güvenilir push bildirimi teslimatı için kritik bir görevdir. Sunucu güncel olmayan bir token saklarsa, bildirimler teslim edilmez ve Firebase UNREGISTERED hatası döndürür.

Token Değişikliklerini İzleme

Firebase SDK, token değişikliklerini izlemek için iki mekanizma sağlar. Android'de, FirebaseMessagingService'te onNewToken geri çağrısı kullanılır. iOS'te, messaging:didReceiveRegistrationToken delegesi kullanılır. Token her güncellendiğinde her ikisi de çağrılır.

kotlin
// Token'ı SharedPreferences'a kaydetme ve sunucuya gönderme
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)
    }
}

Sunucuda Token Saklama Stratejisi

Sunucu, Registration Token'ı kullanıcı tanımlayıcısıyla ilişkili olarak saklamalıdır. Token güncellendiğinde, istemci sunucuya yeni token'ı gönderir ve sunucu eski olanı değiştirir. Token geçmişinin tutulması önerilir: yeni token'a bildirim teslim edilmezse, eski olan denenebilir.

Token ile Çalışırken Hata Yönetimi

Firebase, çeşitli durumlarda token alma hatası döndürebilir. Cihazda Google Play Services'in olmaması — token alınamaz. FCM'ye istek kotasının aşılması — yeniden denemelerde üstel geri çekilme uygulanmalıdır. Token'ın süresinin dolması — SDK otomatik olarak yeni bir tane ister.

DurumSonuçGeliştirici Eylemi
Uygulama silmeToken iptal edilirVeritabanından token'ı sil
Yedekten geri yüklemeYeni tokenVeritabanında güncelle
Google Play Services sıfırlamaToken yeniden oluşturuluronNewToken'ı işle
Token süresinin dolmasıOtomatik güncellemeGüncellemelere abone ol

Sıkça Sorulan Sorular

Registration Token alınamazsa ne yapmalı?

Cihazda Google Play Services'in mevcut olup olmadığını kontrol edin, google-services.json dosyasının doğruluğunu ve Firebase SDK sürümünü kontrol edin. Uygulamanın internet iznine sahip olduğundan emin olun.

Registration Token ne sıklıkta değişir?

Token, uygulama kaldırılıp yeniden yüklendiğinde, veriler temizlendiğinde, yedekten geri yüklendiğinde veya farklı bir Google hesabına giriş yapıldığında değişebilir. Sabit bir zaman aralığı yoktur.

Bir cihaz birden fazla Registration Token'a sahip olabilir mi?

Evet, cihazdaki her uygulama kendi FCM token'ını alır. Bir cihazda Firebase kullanan üç uygulama varsa, her birinin kendi benzersiz Registration Token'ı olur.

Bir Registration Token'ın hala geçerli olup olmadığını nasıl kontrol edebilirim?

Firebase konsolu veya FCM HTTP API aracılığıyla bir test bildirimi gönderin. Token geçersizse, API UNREGISTERED veya NOT_FOUND hatası döndürecektir.

Registration Token'ı sunucuda saklamak güvenli midir?

Registration Token gizli bir anahtar değildir, ancak sızması kullanıcının cihazına bildirim gönderilmesine olanak tanır. Token'ları güvenli bir veritabanında saklayın ve iletim için HTTPS kullanın.

Özet

  • Registration Token, Firebase Cloud Messaging aracılığıyla push bildirimleri göndermek için gerekli bir öğedir.
  • Token, FCM SDK'lı bir uygulamanın ilk başlatılmasında otomatik olarak oluşturulur.
  • Android'de token, FirebaseMessaging.getInstance().getToken() aracılığıyla alınır.
  • iOS'te token, APNs cihaz token'ına dayanır ve MessagingDelegate aracılığıyla iletilir.
  • Token değişebilir — uygulama onNewToken geri çağrısını işlemelidir.
  • Sunucu, güncel token'ları saklamalı ve UNREGISTERED hatası durumunda eski olanları silmelidir.
  • Güvenilir teslimat için, token değişiklik izleme ve başarısızlık durumunda yeniden deneme mekanizması uygulayın.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun