Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Características clave
Además de proporcionar IDs únicos para la autenticación, el ID de instancia puede generar tokens de seguridad para usarlos con otros servicios. Estas son otras funciones:
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 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. Úsala 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 la app en todo el mundo, por lo que tu base de datos puede usarlo para identificar de forma exclusiva las instancias de la app 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
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.
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.
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.
Los tokens son únicos y seguros, pero es posible que tu app o el servicio de ID de instancia necesiten actualizar los tokens en caso de 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 uno requiere que incluyas la biblioteca adecuada en tu app cliente. Android requiere los 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.
[null,null,["Última actualización: 2025-08-31 (UTC)"],[[["\u003cp\u003e\u003cstrong\u003eWarning:\u003c/strong\u003e The Instance ID API is deprecated; for unique app installation identifiers, use the Firebase installations API instead.\u003c/p\u003e\n"],["\u003cp\u003eInstance ID offers key features like generating security tokens, verifying app authenticity, confirming app device activity, and identifying/tracking apps.\u003c/p\u003e\n"],["\u003cp\u003eInstance ID has a lifecycle involving issuing an ID, requesting fresh IDs and tokens, storing them on the server (optional), and handling token refreshes.\u003c/p\u003e\n"],["\u003cp\u003eClient implementation requires including the appropriate library and potentially a Project ID for token generation.\u003c/p\u003e\n"],["\u003cp\u003eFor detailed instructions, refer to the Android and iOS implementation guides.\u003c/p\u003e\n"]]],[],null,["# What is Instance ID?\n\n| **Warning:** The Instance ID API is deprecated. If you need to access unique app installation identifiers, use the [Firebase installations](//firebase.google.com/docs/projects/manage-installations) API. See also [Firebase installations and Instance ID](//firebase.google.com/docs/projects/manage-installations#fid-iid). The [server-side topic management API](https://developers.google.com/instance-id/reference/server#create_relationship_maps_for_app_instances) is still available.\n\nKey features\n------------\n\nIn addition to providing unique IDs for authentication, Instance ID\ncan generate security tokens for use with other services. Other features\ninclude:\n\n### Generate Security Tokens\n\n: Instance ID provides a simple API to generate security tokens that\n authorize third parties to access your app's server side managed resources.\n\n### Verify app authenticity\n\n: Pass Instance ID tokens to your server and use the Instance ID\n service to verify the app package name and check if it has a valid signature.\n Verifying tokens with the Instance ID Cloud Service helps identify known\n apps. To reduce cost and redundant round trip communications, configure your\n server to store these tokens so the check is needed only once.\n In the event of a security concern, your app can delete tokens, or\n Instance ID itself, and generate new ones. In addition, the\n Instance ID server initiates token or Instance ID refresh if it\n detects bugs or security issues.\n\n### Confirm app device is active\n\n: The Instance ID server can tell you when the device on which your app\n is installed was last used. Use this to decide whether to keep data from your\n app or send a push message to reengage with your users.\n\n### Identify and track apps\n\n: Instance ID is unique across all app instances across the world, so\n your database can use it to uniquely identify and track app instances. Your\n server-side code can verify, via the Instance ID cloud service, that an\n Instance ID is genuine and is the same ID as the original app that\n registered with your server. For privacy, your app can delete an Instance ID so\n it is no longer associated with any history in the database. The next time your\n app calls Instance ID it will get an entirely new Instance ID with no\n relationship to its previous one.\n\nInstance ID lifecycle\n---------------------\n\n1. The Instance ID service issues an `InstanceID` when your app comes online. The `InstanceID` is backed by a public/private key pair with the private key stored on the local device and the public key registered with the Instance ID service.\n2. Your app can request a fresh `InstanceID` whenever needed using the `getID()` method. Your app can store it on your server if you have one that supports your app.\n3. Your app can request tokens from the Instance ID service as needed using the `getToken()` method, and like `InstanceID`, your app can also store tokens on your own server. All tokens issued to your app belong to the app's `InstanceID`.\n4. Tokens are unique and secure, but your app or the Instance ID service may need to refresh tokens in the event of a security issue or when a user uninstalls and reinstalls your app during device restoration. Your app must implement a listener to respond to token refresh requests from the Instance ID service.\n\nClient implementation\n---------------------\n\nInstance ID runs on both Android and iOS. Each requires you to include\nthe appropriate library in your client app. Android requires\n[Google Play Services](https://developer.android.com/google/play-services/index.html). You will need a Project ID generated\nby the [](/console/help/new)[Google Developers Console](https://console.developers.google.com/project) if you intend\nto generate tokens.\n\nFor detailed instructions, see the [Android](/instance-id/guides/android-implementation)\nand [iOS](/instance-id/guides/ios-implementation) implementation guides."]]