Registration Token dans les notifications push : ce que c'est, méthodes d'obtention et de mise à jour

Auteur : IT Sectr Publié le : 2026-03-21 Temps de lecture : 8 min

Registration Token est un identifiant unique d'appareil que Firebase Cloud Messaging (FCM) utilise pour distribuer les notifications push. Chaque application sur chaque appareil reçoit son propre token, sans lequel l'envoi de notifications est impossible. Selon Firebase, 2025, le Registration Token est généré automatiquement au premier lancement de l'application et peut changer sous certaines conditions.

Points clés

  • Registration Token est une chaîne qui identifie une instance d'application sur un appareil spécifique pour FCM.
  • Le token est généré automatiquement au premier lancement ou après la suppression des données de l'application.
  • FCM utilise le token pour acheminer les notifications push vers le bon appareil.
  • Le token peut changer — l'application doit s'abonner aux mises à jour via onNewToken.
  • Pour envoyer des notifications, le serveur doit stocker les tokens actuels de tous les appareils.

Qu'est-ce qu'un Registration Token

Registration Token est une chaîne unique pouvant atteindre 4096 caractères que Firebase Cloud Messaging attribue à chaque instance d'application. Le token est formé en fonction de l'ID de l'application, de l'ID de l'appareil et du compte Google sur l'appareil.

Structure et objectif du token

Un Registration Token consiste en une séquence aléatoire de caractères encodés au format Base64. FCM utilise ce token comme adresse de livraison — le serveur envoie une notification au token, et FCM l'achemine vers l'appareil spécifique. Sans token, il est impossible d'adresser une notification push à un utilisateur spécifique.

Différences avec les autres identifiants

Un Registration Token ne doit pas être confondu avec le Device ID (IMEI) ou l'Advertising ID. Le Device ID est un identifiant matériel de l'appareil, tandis que l'Advertising ID est utilisé à des fins publicitaires. Le Registration Token est lié à la combinaison de l'application et de l'appareil, et un même appareil peut avoir plusieurs tokens pour différentes applications.

IdentifiantObjectifMutabilité
Registration TokenLivraison de notifications push FCMPeut changer
Device ID (IMEI)Identification matériellePermanent
Advertising IDPublicité cibléePeut être réinitialisé
Instance IDMécanisme Firebase héritéChangeait à la suppression

Quand le token est considéré invalide

FCM peut considérer un Registration Token invalide dans plusieurs situations. Si l'application est supprimée de l'appareil, le token est automatiquement révoqué. Lors de la restauration de données à partir d'une sauvegarde sur un nouvel appareil, l'ancien token cesse de fonctionner. Firebase retourne également un statut UNREGISTERED lors d'une tentative d'envoi de notification vers un token obsolète.

Comment FCM attribue un Registration Token

Firebase Cloud Messaging génère un Registration Token lors du premier lancement de l'application et de l'appel de la méthode getToken(). Le processus comprend la vérification des identifiants Google Play Services et l'enregistrement de l'application dans l'infrastructure Firebase.

Processus d'enregistrement de l'appareil

Lorsqu'un appareil exécute une application avec le SDK FCM intégré pour la première fois, ce qui suit se produit. Le SDK Firebase vérifie la présence de Google Play Services sur l'appareil. Ensuite, le SDK envoie une requête aux serveurs Firebase, transmettant l'ID de l'application et les informations de l'appareil. Le serveur Firebase crée un nouveau token et le retourne à l'application.

Mécanique interne de FCM

FCM utilise une architecture basée sur des connexions longue durée. Après avoir reçu un Registration Token, l'appareil établit une connexion persistante avec les serveurs Firebase via le protocole STOMP sur Android ou le canal APNs sur iOS. Lorsque le serveur envoie une notification au token, FCM trouve l'appareil par le token et délivre la charge utile.

Conditions de régénération du token

Un Registration Token peut être régénéré par FCM dans les cas suivants. Lors de la restauration d'une application à partir d'une sauvegarde sur un nouvel appareil. Lors de la suppression et de la réinstallation de l'application. Lors de l'effacement des données de l'application via les paramètres système. Lors de la connexion avec un compte Google différent sur l'appareil. Firebase recommande de toujours traiter le callback onNewToken pour suivre les changements.

Obtenir un Registration Token sur Android

Sur Android, le Registration Token est obtenu via le SDK Firebase Messaging. Le processus diffère selon la version du SDK — les versions récentes utilisent l'API FirebaseInstallations au lieu de l'ancien FirebaseInstanceId.

Méthode moderne via FirebaseInstallations

À partir de la version 21.0.0 du SDK Firebase, la méthode getToken() est appelée via FirebaseMessaging. Cette approche gère automatiquement le cycle de vie du token et s'abonne à ses mises à jour.

kotlin
class MyFirebaseMessagingService : FirebaseMessagingService() {

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

    private fun sendRegistrationToServer(token: String) {
        // Envoi du token au serveur
        Log.d("FCM", "New token: $token")
    }

    init {
        FirebaseMessaging.getInstance()
            .getToken()
            .addOnCompleteListener { task ->
                if (!task.isSuccessful) {
                    Log.w("FCM", "Échec de la récupération du token FCM")
                    return@addOnCompleteListener
                }
                val token = task.result
                sendRegistrationToServer(token)
            }
    }
}

Traitement du token dans Activity ou ViewModel

Dans certains scénarios, le token est nécessaire non pas dans le service mais directement dans une Activity ou un ViewModel. Pour cela, getToken() peut être appelé à un point opportun du cycle de vie de l'application. Il est important de ne pas appeler cette méthode depuis le thread principal sans gérer l'asynchronisme.

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

Méthode héritée FirebaseInstanceId

Dans les anciennes versions du SDK Firebase (avant la version 20.x), le token était obtenu via FirebaseInstanceId.getInstance().getToken(). Cette méthode est marquée comme obsolète et n'est pas recommandée pour les nouveaux projets. Les développeurs maintenant du code hérité doivent migrer vers l'API FirebaseInstallations.

Obtenir un Registration Token sur iOS

Sur iOS, le processus d'obtention du Registration Token diffère architecturalement — FCM fonctionne via l'Apple Push Notification service (APNs). Le SDK Firebase reçoit un token d'appareil unique d'APNs, le convertit au format FCM et le transmet à l'application.

Configuration APNs et obtention du token

Pour utiliser FCM sur iOS, vous devez configurer un certificat ou une clé APNs dans la console Firebase. L'application doit demander l'autorisation de notifications via UNUserNotificationCenter. Après avoir reçu le token APNs, le SDK Firebase génère automatiquement le Registration Token.

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

Différences entre les tokens iOS et Android

Le Registration Token sur iOS est plus petit que le token Android, car il est basé sur le token d'appareil APNs. Le SDK Firebase met automatiquement à jour le token FCM lorsque le token APNs change, ce qui se produit lors de la restauration d'un appareil à partir d'une sauvegarde ou de la réinstallation de l'application.

Mise à jour et gestion du Registration Token

La gestion du cycle de vie du Registration Token est une tâche critique pour une distribution fiable des notifications push. Si le serveur stocke un token obsolète, les notifications ne seront pas distribuées et Firebase retournera une erreur UNREGISTERED.

Surveillance des changements de token

Le SDK Firebase fournit deux mécanismes pour suivre les changements de token. Sur Android, le callback onNewToken dans FirebaseMessagingService est utilisé. Sur iOS, le délégué messaging:didReceiveRegistrationToken est utilisé. Les deux sont appelés à chaque mise à jour du token.

kotlin
// Sauvegarde du token dans SharedPreferences et envoi au serveur
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)
    }
}

Stratégie de stockage des tokens sur le serveur

Le serveur doit stocker le Registration Token associé à l'identifiant utilisateur. Lorsque le token est mis à jour, le client envoie le nouveau token au serveur, et le serveur remplace l'ancien. Il est recommandé de conserver un historique des tokens : si une notification n'est pas livrée au nouveau token, l'ancien peut être essayé.

Gestion des erreurs lors du travail avec les tokens

Firebase peut retourner une erreur d'obtention de token dans plusieurs cas. Absence de Google Play Services sur l'appareil — le token ne sera pas obtenu. Dépassement du quota de requêtes à FCM — il est nécessaire d'implémenter un backoff exponentiel lors des tentatives. Expiration du token — le SDK demande automatiquement un nouveau.

SituationRésultatAction du développeur
Suppression de l'applicationToken révoquéSupprimer le token de la base de données
Restauration depuis une sauvegardeNouveau tokenMettre à jour dans la base de données
Réinitialisation de Google Play ServicesToken régénéréTraiter onNewToken
Expiration du tokenMise à jour automatiqueS'abonner aux mises à jour

Questions fréquentes

Que faire si le Registration Token n'est pas reçu ?

Vérifiez la disponibilité de Google Play Services sur l'appareil, l'exactitude du fichier google-services.json et la version du SDK Firebase. Assurez-vous que l'application a la permission d'accès à Internet.

À quelle fréquence le Registration Token change-t-il ?

Le token peut changer lors de la désinstallation et de la réinstallation de l'application, de l'effacement des données, de la restauration à partir d'une sauvegarde ou de la connexion avec un compte Google différent. Il n'y a pas d'intervalle de temps fixe.

Un même appareil peut-il avoir plusieurs Registration Tokens ?

Oui, chaque application sur l'appareil reçoit son propre token FCM. Si un appareil dispose de trois applications avec Firebase, chacune aura son propre Registration Token unique.

Comment vérifier si un Registration Token est toujours valide ?

Envoyez une notification de test via la console Firebase ou l'API HTTP FCM. Si le token est invalide, l'API retournera une erreur UNREGISTERED ou NOT_FOUND.

Est-il sûr de stocker un Registration Token sur le serveur ?

Un Registration Token n'est pas une clé secrète, mais sa fuite permet d'envoyer des notifications sur l'appareil de l'utilisateur. Stockez les tokens dans une base de données sécurisée et utilisez HTTPS pour la transmission.

Résumé

  • Registration Token est un élément requis pour la distribution de notifications push via Firebase Cloud Messaging.
  • Le token est généré automatiquement au premier lancement d'une application avec le SDK FCM.
  • Sur Android, le token est obtenu via FirebaseMessaging.getInstance().getToken().
  • Sur iOS, le token est basé sur le token d'appareil APNs et est transmis via le délégué MessagingDelegate.
  • Le token peut changer — l'application doit traiter le callback onNewToken.
  • Le serveur doit stocker les tokens actuels et supprimer les obsolètes en cas d'erreur UNREGISTERED.
  • Pour une distribution fiable, implémentez une surveillance des changements de token et un mécanisme de tentatives en cas d'échec.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi