Les ID d'instance identifient les installations individuelles de votre application. Étant donné que chaque ID d'instance est unique pour une application et un appareil particuliers, ils permettent aux services Firebase de se référer à 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
- Crashlytics
- Messagerie en nuage
- 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 des ID d'instance pour enregistrer les plantages qui se produisent sur l'appareil, Remote Config les utilise pour récupérer des configurations et Analytics utilise des ID d'instance pour suivre des audiences particulières.
Les données associées aux ID d'instance ne sont généralement pas d'identification personnelle, 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ées à l'ID d'instance :
- Supprimer 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 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 de la suppression d'ID un outil utile pour effacer les données utilisateur, mais s'accompagne également d'une mise en garde : si vous utilisez plusieurs services qui reposent sur des ID d'instance, la suppression d'un ID efface les données de chacun d'eux.
Le service d'ID d'instance crée un nouvel ID en quelques jours, sauf si vous désactivez tous les services de génération 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 aucune façon à 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 des appels d'API de serveur, ajoutez le SDK Firebase Admin à votre serveur , si vous ne l'avez pas déjà fait.
Une fois ajoutés, 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)
Va
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, en 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 rencontrer 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 pour les 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 qui invite 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 :
- Messagerie cloud : Empêcher l'initialisation automatique (Android) ou Empêcher l'initialisation automatique (iOS+)
- Rapport d'incident : activer le rapport d'activation
- Analytics : Configurer la collecte de données Analytics