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 les ID d'instance pour déterminer à quels appareils envoyer des messages.

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

  • Analytique
  • Crashlytiques
  • Messagerie cloud
  • 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 des 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 audiences particulières.

Les données associées aux ID d'instance ne permettent généralement pas d'identifier personnellement, mais il peut toujours être utile de donner aux utilisateurs la possibilité de les gérer. À cette fin, Firebase propose deux manières de gérer la collecte de données liée à l'Instance-ID :

  • 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 identifiants. 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 de 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 de la suppression d'ID un outil utile pour effacer les données utilisateur, mais comporte également une mise en garde : si vous utilisez plusieurs services qui s'appuient sur des ID d'instance, la suppression d'un ID efface les données de chacun d'eux.

Le service Instance ID crée un nouvel ID en quelques jours, sauf si vous désactivez tous les services générant des Instance-ID 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 identifiant avec un appel 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 identifiant avec un appel API serveur

Pour supprimer un ID d'instance avec des appels d'API de serveur, ajoutez le SDK d'administration Firebase à votre serveur , si ce n'est pas déjà fait.

Une fois ajouté, supprimez les identifiants via un appel à la fonction de suppression d'identifiant d'instance dans la langue de votre choix :

Noeud.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 de serveur, les services Firebase suppriment les données associées, cessent d'accepter de nouvelles données pour cet ID et, au bout de quelques jours, informent l'application cliente que l'ID a été supprimé. Jusqu'à ce que Firebase informe l'application cliente, certains 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 client 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 possède 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 des services qui les utilisent.

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

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

,

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 les ID d'instance pour déterminer à quels appareils envoyer des messages.

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

  • Analytique
  • Crashlytiques
  • Messagerie cloud
  • 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 des 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 audiences particulières.

Les données associées aux ID d'instance ne permettent généralement pas d'identifier personnellement, mais il peut toujours être utile de donner aux utilisateurs la possibilité de les gérer. À cette fin, Firebase propose deux manières de gérer la collecte de données liée à l'Instance-ID :

  • 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 identifiants. 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 de 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 de la suppression d'ID un outil utile pour effacer les données utilisateur, mais comporte également une mise en garde : si vous utilisez plusieurs services qui s'appuient sur des ID d'instance, la suppression d'un ID efface les données de chacun d'eux.

Le service Instance ID crée un nouvel ID en quelques jours, sauf si vous désactivez tous les services générant des Instance-ID 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 identifiant avec un appel 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 identifiant avec un appel API serveur

Pour supprimer un ID d'instance avec des appels d'API de serveur, ajoutez le SDK d'administration Firebase à votre serveur , si ce n'est pas déjà fait.

Une fois ajouté, supprimez les identifiants via un appel à la fonction de suppression d'identifiant d'instance dans la langue de votre choix :

Noeud.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 de serveur, les services Firebase suppriment les données associées, cessent d'accepter de nouvelles données pour cet ID et, au bout de quelques jours, informent l'application cliente que l'ID a été supprimé. Jusqu'à ce que Firebase informe l'application cliente, certains 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 client 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 possède 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 des services qui les utilisent.

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

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