Registration Token a push-értesítésekben: mi ez, megszerzési módok és frissítés

Szerző: IT Sectr Megjelenés: 2026-03-21 Olvasási idő: 8 perc

A Registration Token egy egyedi eszközazonosító, amelyet a Firebase Cloud Messaging (FCM) használ a push-értesítések kézbesítéséhez. Minden alkalmazás minden eszközön megkapja a saját tokenjét, amely nélkül az értesítések küldése lehetetlen. A Firebase, 2025 szerint a Registration Token automatikusan generálódik az alkalmazás első indításakor, és bizonyos körülmények között megváltozhat.

Főbb pontok

  • Registration Token — egy string, amely az alkalmazás példányát azonosítja egy adott eszközön az FCM számára.
  • A token automatikusan generálódik az első indításkor vagy az alkalmazás adatainak törlése után.
  • Az FCM a tokent használja a push-értesítések megfelelő eszközre való irányításához.
  • A token megváltozhat — az alkalmazásnak fel kell iratkoznia a frissítésekre az onNewToken segítségével.
  • Az értesítések küldéséhez a szerveroldalnak tárolnia kell az összes eszköz aktuális tokenjét.

Mi az a Registration Token

Registration Token — egy egyedi, legfeljebb 4096 karakterből álló string, amelyet a Firebase Cloud Messaging minden alkalmazáspéldányhoz hozzárendel. A token az alkalmazás, az eszköz és az eszközön lévő Google-fiók azonosítója alapján kerül kialakításra.

A token szerkezete és célja

A Registration Token véletlenszerű karakterek Base64 formátumba kódolt sorozatából áll. Az FCM ezt a tokent kézbesítési címként használja — a szerveroldal értesítést küld a tokenre, az FCM pedig a megfelelő eszközre irányítja. Token nélkül nem lehet push-értesítést címezni egy adott felhasználónak.

Különbségek más azonosítóktól

A Registration Token nem tévesztendő össze a Device ID-vel (IMEI) vagy az Advertising ID-vel. A Device ID az eszköz hardverazonosítója, az Advertising ID-t pedig reklámcélokra használják. A Registration Token az alkalmazás és az eszköz kombinációjához kötődik, és egy eszköz több tokennal is rendelkezhet különböző alkalmazások számára.

AzonosítóCélVáltozékonyság
Registration TokenFCM push-értesítések kézbesítéseMegváltozhat
Device ID (IMEI)Eszköz azonosításaÁllandó
Advertising IDCélzott reklámVisszaállítható
Instance IDElavult Firebase mechanizmusTörléskor változott

Mikor számít érvénytelennek a token

Az FCM több helyzetben is érvénytelennek nyílváníthatja a Registration Tokent. Ha az alkalmazást eltávolítják az eszközről, a token automatikusan érvénytelenítődik. Biztonsági másolatból történő adatvisszaállításkor új eszközön a régi token működése megszűnik. A Firebase UNREGISTERED állapotot ad vissza, amikor egy elavult tokenre próbálnak értesítést küldeni.

Hogyan osztja ki az FCM a Registration Tokent

Firebase Cloud Messaging a Registration Tokent az alkalmazás első indításakor generálja, amikor a getToken() metódust meghívják. A folyamat magában foglalja a Google Play Services hitelesítő adatainak ellenőrzését és az alkalmazás regisztrálását a Firebase infrastruktúrában.

Eszközregisztrációs folyamat

Amikor az eszköz első alkalommal futtatja az integrált FCM SDK-val rendelkező alkalmazást, a következő történik. A Firebase SDK ellenőrzi a Google Play Services meglétét az eszközön. Ezután az SDK kérést küld a Firebase szervereinek, átadva az alkalmazás azonosítóját és az eszköz információit. A Firebase szerver létrehoz egy új tokent és visszaküldi az alkalmazásnak.

Az FCM belső mechanikája

Az FCM hosszú élettartamú kapcsolatokon alapuló architektúrát használ. A Registration Token kézhez vétele után az eszköz állandó kapcsolatot létesít a Firebase szerverekkel Androidon a STOMP protokoll, iOS-en pedig az APNs csatorna segítségével. Amikor a szerveroldal értesítést küld a tokenre, az FCM megtalálja az eszközt a token alapján és továbbítja a hasznos terhet.

A token újragenerálásának feltételei

A Registration Token a következő esetekben újragenerálható az FCM által. Az alkalmazás biztonsági másolatból történő visszaállításakor új eszközön. Az alkalmazás eltávolításakor és újratelepítésekor. Az alkalmazás adatainak rendszerbeállításokon keresztül történő törlésekor. Másik Google-fiókba történő bejelentkezéskor az eszközön. A Firebase azt javasolja, hogy mindig kezelje az onNewToken visszahívást a változások követéséhez.

Registration Token megszerzése Androidon

Androidon a Registration Token a Firebase Messaging SDK-n keresztül szerezhető meg. A folyamat eltér a különböző SDK-verzióknél — az újabb verziókban a FirebaseInstallations API-t használják az elavult FirebaseInstanceId helyett.

Modern módszer a FirebaseInstallations segítségével

A Firebase SDK 21.0.0 verziójától kezdve a getToken() metódust a FirebaseMessaging-en keresztül hívják. Ez a megközelítés automatikusan kezeli a token életciklusát és feliratkozik annak frissítéseire.

kotlin
class MyFirebaseMessagingService : FirebaseMessagingService() {

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

    private fun sendRegistrationToServer(token: String) {
        // Token küldése a szerveroldalra
        Log.d("FCM", "New token: $token")
    }

    init {
        FirebaseMessaging.getInstance()
            .getToken()
            .addOnCompleteListener { task ->
                if (!task.isSuccessful) {
                    Log.w("FCM", "Az FCM token lekérése sikertelen")
                    return@addOnCompleteListener
                }
                val token = task.result
                sendRegistrationToServer(token)
            }
    }
}

Token kezelése Activity-ben vagy ViewModel-ben

Bizonyos forgatókönyvekben a tokenre nem a szolgáltatásban, hanem közvetlenül az Activity-ben vagy ViewModel-ben van szükség. Ehhez a getToken() az alkalmazás életciklusának megfelelő helyén hívható. Fontos, hogy ezt a metódust ne hívja a fő szálból az aszinkronitás kezelése nélkül.

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

Elavult FirebaseInstanceId metódus

A Firebase SDK régebbi verzióiban (a 20.x verzió előtt) a token a FirebaseInstanceId.getInstance().getToken() segítségével volt megszerezhető. Ez a metódus deprecatedként van megjelölve, és új projektekben nem ajánlott. Az örökölt kódot karbantartó fejlesztőknek át kell állniuk a FirebaseInstallations API-ra.

Registration Token megszerzése iOS-en

iOS-en a Registration Token megszerzésének folyamata építészetileg eltér — az FCM az Apple Push Notification service (APNs) segítségével működik. A Firebase SDK egy egyedi eszköztokent kap az APNs-től, átalakítja FCM formátumba, és továbbítja az alkalmazásnak.

APNs konfigurálása és token megszerzése

Az FCM iOS-en történő működéséhez APNs tanúsítványt vagy kulcsot kell konfigurálni a Firebase konzolban. Az alkalmazásnak engedélyt kell kérnie az értesítésekhez az UNUserNotificationCenter-en keresztül. Az APNs token kézhez vétele után a Firebase SDK automatikusan generálja a Registration Tokent.

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

Különbségek az iOS és Android token között

Az iOS Registration Token kisebb méretű az Android tokenhez képest, mivel az APNs eszköztokenen alapul. A Firebase SDK automatikusan frissíti az FCM tokent az APNs token változásakor, ami az eszköz biztonsági másolatból történő visszaállításakor vagy az alkalmazás újratelepítésekor történik.

Registration Token frissítése és kezelése

A Registration Token életciklusának kezelése kritikus feladat a push-értesítések stabil kézbesítéséhez. Ha a szerveroldal elavult tokent tárol, az értesítések nem kerülnek kézbesítésre, és a Firebase UNREGISTERED hibát ad vissza.

Token változásainak nyomon követése

A Firebase SDK két mechanizmust kínál a token változásainak követésére. Androidon az onNewToken visszahívást használják a FirebaseMessagingService-ben. iOS-en — a messaging:didReceiveRegistrationToken delegáltat. Mindkettő minden tokenfrissítéskor meghívásra kerül.

kotlin
// Token mentése SharedPreferences-be és elküldése a szerverre
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)
    }
}

Tokenek szerveren történő tárolásának stratégiája

A szerveroldalnak a Registration Tokent a felhasználó azonosítójával összefüggésben kell tárolnia. A token frissítésekor az ügyfél elküldi az új tokent a szervernek, a szerver pedig lecseréli a régit. Javasolt a tokentörténet megőrzése: ha az értesítés nem érkezett meg az új tokenre, megpróbálható a régi.

Hibakezelés a token használata során

A Firebase több esetben is hibát adhat vissza a token megszerzésekor. A Google Play Services hiánya az eszközön — a token nem szerezhető meg. Az FCM kéréskvóta túllépése — exponenciális késleltetést kell alkalmazni az újrapróbálkozásoknál. A token lejárta — az SDK automatikusan újat kér.

HelyzetEredményFejlesztői művelet
Alkalmazás eltávolításaToken érvénytelenítveToken törlése az adatbázisból
Visszaállítás biztonsági másolatbólÚj tokenFrissítés az adatbázisban
Google Play Services visszaállításaToken újragenerálódottonNewToken kezelése
Token lejártaAutomatikus frissítésFeliratkozás a frissítésekre

Gyakran Ismételt Kérdések

Mit kell tenni, ha a Registration Token nem érkezett meg?

Ellenőrizze a Google Play Services meglétét az eszközön, a google-services.json fájl helyességét és a Firebase SDK verzióját. Győződjön meg arról, hogy az alkalmazás rendelkezik internet-hozzáférési engedéllyel.

Milyen gyakran változik a Registration Token?

A token változhat az alkalmazás eltávolításakor és újratelepítésekor, adatok törlésekor, biztonsági másolatból történő visszaállításkor vagy másik Google-fiókba történő bejelentkezéskor. Nincs szigorú időintervallum.

Lehet, hogy egy eszköz több Registration Tokennal rendelkezzen?

Igen, minden alkalmazás az eszközön megkapja a saját FCM tokenjét. Ha három Firebase-es alkalmazás van telepítve az eszközön, mindegyik rendelkezni fog a saját egyedi Registration Tokenjével.

Hogyan ellenőrizhető, hogy a Registration Token még érvényes?

Küldjön tesztértesítést a Firebase konzolon vagy az FCM HTTP API-n keresztül. Ha a token érvénytelen, az API UNREGISTERED vagy NOT_FOUND hibát ad vissza.

Biztonságos-e a Registration Token tárolása a szerveren?

A Registration Token nem titkos kulcs, de kiszivárgása lehetővé teszi értesítések küldését a felhasználó eszközére. Tárolja a tokeneket védett adatbázisban, és használjon HTTPS-t az átvitelhez.

Összefoglalás

  • Registration Token — kötelező elem a push-értesítések Firebase Cloud Messaging segítségével történő kézbesítéséhez.
  • A token automatikusan generálódik az alkalmazás első FCM SDK-val történő indításakor.
  • Androidon a token a FirebaseMessaging.getInstance().getToken() segítségével szerezhető meg.
  • iOS-en a token az APNs eszköztokenen alapul, és a MessagingDelegate delegált segítségével adódik át.
  • A token megváltozhat — az alkalmazásnak kezelnie kell az onNewToken visszahívást.
  • A szerveroldalnak tárolnia kell az aktuális tokeneket, és törölnie kell az elavultakat UNREGISTERED hiba esetén.
  • A megbízható kézbesítés érdekében alkalmazzon tokenváltozás-figyelést és újrapróbálkozási mechanizmust hibák esetén.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is