Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Gérer les données d'ID d'instance

Les ID d'instance identifient les installations individuelles de votre application. Étant donné que chaque ID d'instance est unique à une application et à un appareil particuliers, ils donnent aux services Firebase un moyen de faire référence à des instances d'application spécifiques. Par exemple, Cloud Messaging utilise des ID d'instance pour déterminer à quels appareils envoyer des messages.

Plusieurs services Firebase utilisent des ID d'instance pour alimenter leurs fonctionnalités :

  • Analytique
  • Crashlytiques
  • Messagerie Cloud
  • Prédictions
  • Configuration à distance

Gérer les données d'application associées aux ID d'instance

Les services qui utilisent des ID d'instance pour identifier les installations les utilisent également comme clé pour associer les données pertinentes à cet appareil. Par exemple, Crashlytics utilise les ID d'instance pour enregistrer les plantages qui se produisent sur l'appareil, Remote Config les utilise pour récupérer les configurations et Analytics utilise les ID d'instance pour suivre des publics particuliers.

Les données associées à ID instance est généralement pas d'identification personnelle, mais il peut encore être utile pour donner aux utilisateurs une option pour le gérer. À cette fin, Firebase propose deux manières de gérer la collecte de données liées à l'ID d'instance :

  • Supprimez les ID d'instance. Vous pouvez supprimer un ID d'instance avec un appel d'API côté serveur ou client. La suppression d'un ID d'instance supprime l'ID lui-même et toutes les données qui lui sont associées.
  • Désactivez les services qui génèrent des ID. La plupart des services Firebase qui utilisent des ID d'instance génèrent automatiquement un nouvel ID s'il n'y en a pas sur l'appareil au démarrage. Pour vous assurer que votre application ne crée pas d'ID d'instance indésirables, désactivez l'initialisation automatique pour ces services.

Supprimer un ID d'instance

La suppression d'un ID d'instance supprime également les données associées à cet ID dans l'un des services Firebase répertoriés ci-dessus. Cela fait des données d'identification suppression d' un outil utile pour l' utilisateur de compensation, mais est également livré avec une mise en garde: si vous utilisez plusieurs services qui comptent sur ID instance, la suppression d' une donnée de Clears ID de tous.

Le service d'ID d'instance crée un nouvel ID en quelques jours, sauf si vous désactivez tous les services générateurs d'ID d'instance dans votre application. Firebase considère l'ID nouvellement créé comme une toute nouvelle instance d'application et ne l'associe en aucun cas à l'ID précédent.

Supprimer un ID avec un appel d'API client

Pour supprimer les ID générés par les services Firebase, appelez la méthode appropriée à partir de l'API Firebase Instance ID :

Rapide

InstanceID.instanceID().deleteID { error in
  if let error = error {
    print("Error deleting instance ID: \(error)")
  }
}

Objectif c

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
  if error != nil {
    NSLog(@"Error deleting instance ID: %@", error);
  }
}];

Android

FirebaseInstanceId.deleteInstanceId();

Supprimer un ID avec un appel d'API serveur

Pour supprimer un ID d' instance avec les appels API serveur, ajoutez le Firebase Administrateur SDK à votre serveur , si vous avez pas déjà.

Une fois qu'il est ajouté, supprimez les ID via un appel à la fonction de suppression d'ID d'instance dans la langue de votre choix :

Node.js

// An Instance ID sent from a client service SDK
const idToDelete = 'INSTANCE_ID';

admin.instanceId().deleteInstanceId(idToDelete);

Java

// An Instance ID sent from a client service SDK
String idToDelete = "INSTANCE_ID";

FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();

Python

  from firebase_admin import instance_id

  # An Instance ID sent from a client service SDK
  id_to_delete = 'INSTANCE_ID'

  instance_id.delete_instance_id(id_to_delete)

Aller

client, err := app.InstanceId(ctx)
if err != nil {
  log.Fatalln("error initializing client", err)
}

iidToDelete := "INSTANCE_ID"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
  log.Fatalln("error deleting iid", err)
}

Lorsque vous supprimez un ID d'instance avec un appel d'API serveur, les services Firebase suppriment les données associées, cessent d'accepter de nouvelles données pour cet ID et, dans quelques jours, informent l'application cliente que l'ID a été supprimé. Jusqu'à ce que Firebase informe l'application cliente, certains des services de l'application peuvent connaître des fonctionnalités réduites.

Si vous souhaitez supprimer l'ID d'instance actuel et utiliser immédiatement les services Firebase avec un nouvel ID indépendant, utilisez l'une des API clientes ci-dessus pour gérer la suppression.

Désactiver la génération d'ID d'instance

Les services qui utilisent des ID d'instance génèrent automatiquement un nouvel ID lorsqu'ils sont initialisés dans une application qui n'en a pas actuellement. En règle générale, ces services s'initialisent également automatiquement au lancement de votre application. Pour désactiver la génération d'ID d'instance, vous devez désactiver l'initialisation automatique pour les services qui les utilisent.

Une approche courante consiste à donner aux utilisateurs la possibilité d'accepter la collecte de données : désactiver l'initialisation automatique pour les services qui utilisent des ID d'instance, implémenter une boîte de dialogue qui invite les utilisateurs à donner leur consentement à la collecte de données et réactiver les services manuellement une fois vous avez le consentement.

Lisez les guides ci-dessous pour savoir comment désactiver l'initialisation automatique pour les services utilisant l'ID d'instance et les initialiser manuellement à la place :