¿Qué es un ID de instancia?

Instance ID proporciona un ID único por instancia de tus apps. Puedes implementar el ID de instancia en apps para iOS y Android, así como extensiones y apps de Chrome.

Funciones clave

Además de proporcionar IDs únicos para la autenticación, el ID de instancia puede generar tokens de seguridad que se pueden usar con otros servicios. Entre otras funciones, se incluyen las siguientes:

Generar tokens de seguridad

El ID de instancia proporciona una API simple para generar tokens de seguridad que autoricen a terceros a acceder a los recursos administrados por el servidor de tu app.

Verifica la autenticidad de la app

Pasar tokens de ID de instancia a tu servidor y usar 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 de ID de instancia de Cloud ayuda a identificar apps conocidas. Para reducir el costo y las comunicaciones redundantes de ida y vuelta, configura tu servidor de modo que almacene estos tokens, de modo que la verificación solo se necesite una vez. En caso de un problema de seguridad, tu app puede borrar tokens (o el ID de instancia) y generar 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 Instance ID puede indicarte cuándo se usó por última vez el dispositivo en el que se instaló tu app. Úsalo para decidir si quieres conservar los datos de la app o enviar un mensaje push para volver a interactuar con los usuarios.

Identificar apps y hacerles un seguimiento

El ID de instancia es único en todas las instancias de la app en todo el mundo, por lo que tu base de datos puede usarlo para identificar las instancias de la app y realizar un seguimiento de ellas de manera inequívoca. Con el código del servidor, puedes verificar, a través del servicio en la nube de Instance ID, que un ID de instancia sea genuino y sea el mismo que el de 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 de 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 de los IDs de instancia

  1. El servicio de ID de instancia emite un InstanceID cuando tu app está en línea. El InstanceID está respaldado por un par de claves pública/privada con la clave privada almacenada en el dispositivo local y la clave pública registrada en el servicio de Instance ID.
  2. Siempre que sea necesario, tu app puede solicitar un InstanceID nuevo mediante el método getID(). Tu app puede almacenarla en tu servidor si tienes uno compatible con ella.
  3. Tu app puede solicitar tokens del servicio de ID de instancia según sea necesario con el método getToken(). Al igual que InstanceID, la app también puede almacenar tokens en tu propio servidor. Todos los tokens emitidos a tu app pertenecen al InstanceID de la app.
  4. Los tokens son únicos y seguros, pero es posible que tu app o el servicio de ID de instancia deban actualizar los tokens en caso de un problema de seguridad o cuando un usuario desinstale y reinstale 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 Instance ID.

Ciclo de vida del 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 los Servicios de Google Play. Necesitarás un ID del proyecto que genere Google Developers Console si quieres generar tokens.

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