¿Qué es un ID de instancia?

Características clave

Además de proporcionar IDs únicos para la autenticación, Instance ID puede generar tokens de seguridad para usarlos con otros servicios. Estas son otras funciones:

Genera tokens de seguridad

Instance ID proporciona una API simple para generar tokens de seguridad que autorizan a terceros a acceder a los recursos administrados del servidor de tu app.

Verifica la autenticidad de la app

Envía tokens de ID de instancia a tu servidor y usa el servicio de ID de instancia para verificar el nombre del paquete de la app y comprobar si tiene una firma válida. La verificación de tokens con el servicio en la nube de Instance ID ayuda a identificar apps conocidas. Para reducir los costos y las comunicaciones de ida y vuelta redundantes, configura tu servidor para que almacene estos tokens, de modo que la verificación solo sea necesaria una vez. En caso de que haya un problema de seguridad, tu app puede borrar tokens o el ID de instancia y generar otros nuevos. Además, el servidor de ID de instancia inicia la actualización del token o el ID de instancia si detecta errores o problemas de seguridad.

Confirma que el dispositivo de la app esté activo

El servidor de ID de instancia puede indicarte cuándo se usó por última vez el dispositivo en el que está instalada tu app. Úsalo para decidir si quieres conservar los datos de tu app o enviar un mensaje push para volver a interactuar con tus usuarios.

Identifica y realiza un seguimiento de las apps

El ID de instancia es único en todas las instancias de apps del mundo, por lo que tu base de datos puede usarlo para identificar de forma exclusiva las instancias de apps y hacer un seguimiento de ellas. Tu código del servidor puede verificar, a través del servicio en la nube de Instance ID, que un ID de instancia es original y es el mismo ID que la app original que se registró con tu servidor. Por motivos de privacidad, tu app puede borrar un ID de instancia para que ya no esté asociado con ningún historial en la base de datos. La próxima vez que tu app llame al ID de instancia, obtendrá un ID de instancia completamente nuevo sin relación con el anterior.

Ciclo de vida del ID de instancia

  1. El servicio de ID de instancia emite un InstanceID cuando tu app se conecta. InstanceID está respaldado por un par de claves pública y privada, con la clave privada almacenada en el dispositivo local y la clave pública registrada en el servicio de ID de instancia.
  2. Tu app puede solicitar una InstanceID nueva cuando sea necesario con el método getID(). Tu app puede almacenarlo en tu servidor si tienes uno que admita tu app.
  3. Tu app puede solicitar tokens del servicio de ID de instancia según sea necesario con el método getToken() y, al igual que InstanceID, también puede almacenar tokens en tu propio servidor. Todos los tokens emitidos a tu app pertenecen a su InstanceID.
  4. Los tokens son únicos y seguros, pero es posible que tu app o el servicio de Instance ID necesiten actualizarlos en caso de que haya un problema de seguridad o cuando un usuario desinstale y vuelva a instalar tu app durante el restablecimiento del dispositivo. Tu app debe implementar un objeto de escucha para responder a las solicitudes de actualización de tokens del servicio de ID de instancia.

Implementación del cliente

El ID de instancia se ejecuta en iOS y Android. Cada una requiere que incluyas la biblioteca adecuada en tu app cliente. Android requiere Servicios de Google Play. Necesitarás un ID de proyecto que genere Google Play Console si deseas generar tokens.

Para obtener instrucciones detalladas, consulta las guías de implementación de Android y iOS.