Administrar datos de ID de instancia

Los ID de instancia identifican instalaciones individuales de su aplicación. Dado que cada ID de instancia es única para una aplicación y un dispositivo en particular, brindan a los servicios de Firebase una forma de hacer referencia a instancias de aplicaciones específicas. Por ejemplo, Cloud Messaging utiliza ID de instancia para determinar a qué dispositivos enviar mensajes.

Varios servicios de Firebase utilizan ID de instancia para potenciar sus funciones:

  • Analítica
  • Crashlíticos
  • Mensajería en la nube
  • Configuración remota

Administrar datos de aplicaciones asociados con ID de instancia

Los servicios que utilizan ID de instancia para identificar instalaciones también los utilizan como clave para asociar datos relevantes con ese dispositivo. Por ejemplo, Crashlytics usa ID de instancia para registrar fallas que ocurren en el dispositivo, Remote Config los usa para recuperar configuraciones y Analytics usa ID de instancia para rastrear audiencias específicas.

Los datos asociados con los ID de instancia generalmente no son de identificación personal, pero aún así puede resultar útil brindarles a los usuarios la opción de administrarlos. Con ese fin, Firebase ofrece dos formas de administrar la recopilación de datos relacionados con el ID de instancia:

  • Eliminar ID de instancia. Puede eliminar una ID de instancia con una llamada API del lado del servidor o del cliente. Al eliminar una ID de instancia, se elimina la ID en sí y todos los datos asociados a ella.
  • Deshabilite los servicios que generan identificaciones. La mayoría de los servicios de Firebase que usan ID de instancia generan automáticamente un nuevo ID si no hay uno en el dispositivo cuando se inician. Para asegurarse de que su aplicación no cree ID de instancia no deseadas, desactive la inicialización automática para esos servicios.

Eliminar una ID de instancia

Al eliminar un ID de instancia, también se eliminan los datos asociados con ese ID en cualquiera de los servicios de Firebase enumerados anteriormente. Eso hace que la eliminación de ID sea una herramienta útil para borrar los datos del usuario, pero también viene con una advertencia: si está utilizando varios servicios que dependen de los ID de instancia, eliminar un ID borra los datos de todos ellos.

El servicio de ID de instancia crea una nueva ID en unos pocos días, a menos que desactive todos los servicios de generación de ID de instancia en su aplicación. Firebase considera que el ID recién creado es una instancia de aplicación completamente nueva y no la asocia con el ID anterior de ninguna manera.

Eliminar una identificación con una llamada a la API del cliente

Para eliminar los ID generados por los servicios de Firebase, llama al método apropiado desde la API de ID de instancia de Firebase:

Rápido

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

C objetivo

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

Androide

FirebaseInstanceId.deleteInstanceId();

Eliminar una identificación con una llamada a la API del servidor

Para eliminar un ID de instancia con llamadas a la API del servidor, agregue el SDK de administrador de Firebase a su servidor , si aún no lo ha hecho.

Una vez agregado, elimine las ID mediante una llamada a la función de eliminación de ID de instancia en el idioma que elija:

Nodo.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();

Pitón

  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)

Ir

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

Cuando eliminas un ID de instancia con una llamada a la API del servidor, los servicios de Firebase eliminan los datos asociados, dejan de aceptar datos nuevos para ese ID y, dentro de unos días, notifican a la aplicación cliente que el ID se eliminó. Hasta que Firebase notifique a la aplicación cliente, algunos de los servicios de la aplicación pueden experimentar una funcionalidad reducida.

Si desea eliminar el ID de instancia actual y usar inmediatamente los servicios de Firebase con un ID nuevo e independiente, use una de las API de cliente anteriores para manejar la eliminación.

Deshabilitar la generación de ID de instancia

Los servicios que utilizan ID de instancia generan automáticamente un nuevo ID cuando se inicializan en una aplicación que actualmente no tiene uno. Normalmente, esos servicios también se inicializan automáticamente cuando se inicia la aplicación. Para deshabilitar la generación de ID de instancia, debe deshabilitar la inicialización automática de los servicios que los utilizan.

Un enfoque común es brindar a los usuarios la opción de optar por la recopilación de datos: deshabilitar la inicialización automática para los servicios que usan ID de instancia, implementar un cuadro de diálogo que solicite a los usuarios su consentimiento para la recopilación de datos y volver a habilitar los servicios manualmente una vez. tienes consentimiento.

Lea las guías a continuación para descubrir cómo deshabilitar la inicialización automática para los servicios que utilizan ID de instancia y, en su lugar, inicializarlos manualmente:

,

Los ID de instancia identifican instalaciones individuales de su aplicación. Dado que cada ID de instancia es única para una aplicación y un dispositivo en particular, brindan a los servicios de Firebase una forma de hacer referencia a instancias de aplicaciones específicas. Por ejemplo, Cloud Messaging utiliza ID de instancia para determinar a qué dispositivos enviar mensajes.

Varios servicios de Firebase utilizan ID de instancia para potenciar sus funciones:

  • Analítica
  • Crashlíticos
  • Mensajería en la nube
  • Configuración remota

Administrar datos de aplicaciones asociados con ID de instancia

Los servicios que utilizan ID de instancia para identificar instalaciones también los utilizan como clave para asociar datos relevantes con ese dispositivo. Por ejemplo, Crashlytics usa ID de instancia para registrar fallas que ocurren en el dispositivo, Remote Config los usa para recuperar configuraciones y Analytics usa ID de instancia para rastrear audiencias específicas.

Los datos asociados con los ID de instancia generalmente no son de identificación personal, pero aún así puede resultar útil brindarles a los usuarios la opción de administrarlos. Con ese fin, Firebase ofrece dos formas de administrar la recopilación de datos relacionados con el ID de instancia:

  • Eliminar ID de instancia. Puede eliminar una ID de instancia con una llamada API del lado del servidor o del cliente. Al eliminar una ID de instancia, se elimina la ID en sí y todos los datos asociados a ella.
  • Deshabilite los servicios que generan identificaciones. La mayoría de los servicios de Firebase que usan ID de instancia generan automáticamente un nuevo ID si no hay uno en el dispositivo cuando se inician. Para asegurarse de que su aplicación no cree ID de instancia no deseadas, desactive la inicialización automática para esos servicios.

Eliminar una ID de instancia

Al eliminar un ID de instancia, también se eliminan los datos asociados con ese ID en cualquiera de los servicios de Firebase enumerados anteriormente. Eso hace que la eliminación de ID sea una herramienta útil para borrar los datos del usuario, pero también viene con una advertencia: si está utilizando varios servicios que dependen de los ID de instancia, eliminar un ID borra los datos de todos ellos.

El servicio de ID de instancia crea una nueva ID en unos pocos días, a menos que desactive todos los servicios de generación de ID de instancia en su aplicación. Firebase considera que el ID recién creado es una instancia de aplicación completamente nueva y no la asocia con el ID anterior de ninguna manera.

Eliminar una identificación con una llamada a la API del cliente

Para eliminar los ID generados por los servicios de Firebase, llama al método apropiado desde la API de ID de instancia de Firebase:

Rápido

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

C objetivo

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

Androide

FirebaseInstanceId.deleteInstanceId();

Eliminar una identificación con una llamada a la API del servidor

Para eliminar un ID de instancia con llamadas a la API del servidor, agregue el SDK de administrador de Firebase a su servidor , si aún no lo ha hecho.

Una vez agregado, elimine las ID mediante una llamada a la función de eliminación de ID de instancia en el idioma que elija:

Nodo.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();

Pitón

  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)

Ir

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

Cuando eliminas un ID de instancia con una llamada a la API del servidor, los servicios de Firebase eliminan los datos asociados, dejan de aceptar datos nuevos para ese ID y, dentro de unos días, notifican a la aplicación cliente que el ID se eliminó. Hasta que Firebase notifique a la aplicación cliente, algunos de los servicios de la aplicación pueden experimentar una funcionalidad reducida.

Si desea eliminar el ID de instancia actual y usar inmediatamente los servicios de Firebase con un ID nuevo e independiente, use una de las API de cliente anteriores para manejar la eliminación.

Deshabilitar la generación de ID de instancia

Los servicios que utilizan ID de instancia generan automáticamente un nuevo ID cuando se inicializan en una aplicación que actualmente no tiene uno. Normalmente, esos servicios también se inicializan automáticamente cuando se inicia la aplicación. Para deshabilitar la generación de ID de instancia, debe deshabilitar la inicialización automática de los servicios que los utilizan.

Un enfoque común es brindar a los usuarios la opción de optar por la recopilación de datos: deshabilitar la inicialización automática para los servicios que usan ID de instancia, implementar un cuadro de diálogo que solicite a los usuarios su consentimiento para la recopilación de datos y volver a habilitar los servicios manualmente una vez. tienes consentimiento.

Lea las guías a continuación para descubrir cómo deshabilitar la inicialización automática para los servicios que utilizan ID de instancia y, en su lugar, inicializarlos manualmente: