Gestisci i dati dell'ID istanza

Gli ID istanza identificano le singole installazioni della tua app. Poiché ogni ID istanza è univoco per una particolare app e dispositivo, offrono ai servizi Firebase un modo per fare riferimento a istanze di app specifiche. Ad esempio, Cloud Messaging utilizza gli ID istanza per determinare a quali dispositivi inviare i messaggi.

Diversi servizi Firebase utilizzano gli ID istanza per potenziare le proprie funzionalità:

  • Analisi
  • Crashlytics
  • Messaggistica cloud
  • Predizioni
  • Configurazione remota

Gestisci i dati delle app associati agli ID istanza

I servizi che utilizzano gli ID istanza per identificare le installazioni li utilizzano anche come chiave per associare i dati rilevanti a quel dispositivo. Ad esempio, Crashlytics utilizza gli ID istanza per registrare gli arresti anomali che si verificano sul dispositivo, Remote Config li utilizza per recuperare le configurazioni e Analytics utilizza gli ID istanza per tenere traccia di determinati segmenti di pubblico.

I dati associati con Instance ID non è in genere di identificazione personale, ma può ancora essere utile per dare agli utenti la possibilità di gestirlo. A tal fine, Firebase offre due modi per gestire la raccolta dati relativa all'ID istanza:

  • Elimina ID istanza. Puoi eliminare un ID istanza con una chiamata API lato server o client. L'eliminazione di un ID istanza elimina l'ID stesso e tutti i dati ad esso associati.
  • Disabilita i servizi che generano gli ID. La maggior parte dei servizi Firebase che utilizzano ID istanza generano automaticamente un nuovo ID se non ce n'è uno sul dispositivo all'avvio. Per assicurarti che la tua app non crei ID istanza indesiderati, disabilita l'inizializzazione automatica per tali servizi.

Elimina un ID istanza

L'eliminazione di un ID istanza elimina anche i dati associati a tale ID in uno qualsiasi dei servizi Firebase sopra elencati. Che rende ID eliminazione di uno strumento utile per i dati degli utenti di compensazione, ma anche dotato di un avvertimento: se si sta utilizzando più servizi che si basano su istanza ID, l'eliminazione di un dati, si annulla ID da tutti loro.

Il servizio ID istanza crea un nuovo ID entro pochi giorni, a meno che non disattivi tutti i servizi che generano ID istanza nella tua app. Firebase considera l'ID appena creato come una nuova istanza dell'app e non lo associa in alcun modo all'ID precedente.

Elimina un ID con una chiamata API client

Per eliminare gli ID generati dai servizi Firebase, chiama il metodo appropriato dall'API Firebase Instance ID:

Swift

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

Obiettivo-C

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

Android

FirebaseInstanceId.deleteInstanceId();

Elimina un ID con una chiamata API del server

Per eliminare un ID istanza del server con le chiamate API, aggiungere il Firebase Admin SDK al server , se non l'hai già.

Una volta aggiunto, elimina gli ID tramite una chiamata alla funzione di eliminazione dell'ID istanza nella lingua che preferisci:

Nodo.js

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

admin.instanceId().deleteInstanceId(idToDelete);

Giava

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

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

Pitone

  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)

andare

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

Quando elimini un ID istanza con una chiamata API del server, i servizi Firebase eliminano i dati associati, smettono di accettare nuovi dati per quell'ID e, entro pochi giorni, notificano all'app client che l'ID è stato eliminato. Fino a quando Firebase non notifica l'app client, alcuni dei servizi dell'app potrebbero presentare funzionalità ridotte.

Se desideri eliminare l'ID istanza corrente e utilizzare immediatamente i servizi Firebase con un nuovo ID indipendente, utilizza una delle API client di cui sopra per gestire l'eliminazione.

Disabilita la generazione dell'ID istanza

I servizi che usano gli ID istanza generano automaticamente un nuovo ID quando vengono inizializzati in un'app che al momento non ne ha uno. In genere, questi servizi vengono inizializzati automaticamente anche all'avvio dell'app. Per disabilitare la generazione dell'ID istanza, devi disabilitare l'inizializzazione automatica per i servizi che li utilizzano.

Un approccio comune consiste nell'offrire agli utenti un'opzione per attivare la raccolta dei dati: disabilitare l'inizializzazione automatica per i servizi che utilizzano ID istanza, implementare una finestra di dialogo che richieda agli utenti il ​​consenso alla raccolta dei dati e riattivare i servizi manualmente una volta hai il consenso.

Leggi le guide seguenti per scoprire come disabilitare l'inizializzazione automatica per i servizi che utilizzano ID istanza e inizializzarli invece manualmente: