El ID de instancia proporciona un ID único por instancia de tus apps. Puedes implementar el ID de instancia en apps para iOS y Android, así como aplicaciones y extensiones de Chrome.
Funciones clave
Además de proporcionar ID únicos para la autenticación, el ID de instancia puede generar tokens de seguridad que se usarán con otros servicios. Entre otras funciones, se incluyen las siguientes:
Genera tokens de seguridad
- El ID de instancia proporciona una API simple para generar tokens de seguridad que autorizan a terceros a acceder a los recursos administrados por el servidor de tu app.
Cómo verificar la autenticidad de la app
- Pasar tokens de ID de instancia a tu servidor y usar el servicio de Instance ID para verificar el nombre del paquete de la app y comprobar si tiene una firma válida La verificación de tokens con el Instance ID de Cloud Service ayuda a identificar apps conocidas. A fin de reducir el costo y las comunicaciones redundantes de ida y vuelta, configura tu servidor para que almacene estos tokens de modo que la verificación se necesite solo una vez. En el caso de un problema de seguridad, tu app puede borrar tokens (o el propio ID de instancia) y generar nuevos. Además, el servidor de ID de instancia inicia la actualización del token o del 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. Usa esto para decidir si quieres conservar los datos de la app o enviar un mensaje push a fin de volver a interactuar con los usuarios.
Identifica apps y realiza un seguimiento de ellas
- 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 de manera única las instancias de la app y hacerles un seguimiento. El código del servidor puede verificar, a través del servicio en la nube de Instance ID, que un ID de instancia es genuino y es 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
- El servicio de ID de instancia emite un
InstanceID
cuando tu app está en línea.InstanceID
está respaldado por un par de claves públicas/privadas con la clave privada almacenada en el dispositivo local y la clave pública registrada en el servicio de Instance ID. - Tu app puede solicitar un
InstanceID
nuevo siempre que sea necesario mediante el métodogetID()
. Tu app puede almacenarlo en tu servidor si tienes uno que la admita. - Tu app puede solicitar tokens del servicio de ID de instancia según sea necesario con el método
getToken()
y, al igual queInstanceID
, también puede almacenar tokens en tu propio servidor. Todos los tokens emitidos a tu app pertenecen alInstanceID
de la app. - Los tokens son únicos y seguros, pero es posible que tu app o el servicio de Instance ID deban actualizar los tokens en caso de que haya 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.
Implementación del cliente
El ID de instancia se ejecuta en iOS y Android. Cada uno 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.
Si quieres obtener instrucciones detalladas, consulta las guías de implementación para iOS y Android.