Usuarios de los proyectos de Firebase

Un objeto de usuario de Firebase representa la cuenta de un usuario que accedió a una app de tu proyecto. Generalmente, las apps tienen muchos usuarios registrados y todas las apps de un proyecto comparten una base de datos de usuarios.

Una instancia de usuario de Firebase es independiente de una instancia de Firebase Authentication. Esto significa que pueden existir varias referencias a diferentes usuarios en el mismo contexto y, de todos modos, llamar a cualquiera de sus métodos.

Propiedades del usuario

Un usuario de Firebase tiene un conjunto fijo de propiedades básicas: un ID único, una dirección de correo electrónico principal, un nombre y la URL de una foto. Todas estas propiedades se almacenan en la base de datos de usuarios del proyecto y el usuario puede actualizarlas (en iOS, Android y la Web). No se pueden agregar otras propiedades al objeto de usuario de Firebase directamente. En cambio, puedes almacenar las propiedades adicionales en cualquier otro servicio de almacenamiento, como Google Cloud Firestore.

La primera vez que se registra un usuario en la app, los datos de su perfil se propagan con la información disponible:

  • Si el usuario se registró con una dirección de correo electrónico y una contraseña, solo se propaga la propiedad de dirección de correo electrónico principal.
  • Si el usuario se registró con un proveedor de identidad federada, como Google o Facebook, la información de la cuenta que el proveedor entregó se usa para propagar el perfil del usuario de Firebase.
  • Si el usuario se registró con tu sistema de autenticación personalizado, debes agregar expresamente la información que desees en el perfil del usuario de Firebase.

Una vez que se crea una cuenta de usuario, puedes volver a cargar la información de esa persona para incorporar los cambios que pueda haber realizado en otro dispositivo.

Proveedores de acceso

Puedes hacer que los usuarios accedan a tus apps a través de varios métodos: dirección de correo electrónico y contraseña, proveedores de identidades federadas y tu sistema de autenticación personalizado. Puedes asociar más de un método de acceso a un usuario. Por ejemplo, este puede acceder a la misma cuenta usando una dirección de correo electrónico y una contraseña o un Acceso con Google.

Una instancia de usuario de Firebase realiza un seguimiento de cada proveedor vinculado a un usuario. Esto permite actualizar las propiedades de perfiles vacíos usando información proporcionada por un proveedor. Consulta “Administra usuarios” (para iOS, Android y la Web).

El usuario actual

Cuando un usuario se registra o accede, pasa a ser el usuario actual de la instancia de Auth. La instancia conserva el estado del usuario. Por lo tanto, al actualizarse la página (en un navegador) o reiniciar la app, no se pierde la información del usuario.

Cuando el usuario sale de su sesión, la instancia de Auth deja de conservar una referencia al objeto de usuario y con ello el estado de este. Entonces deja de haber usuario actual. Sin embargo, la instancia de usuario continúa siendo totalmente funcional: si conservas una referencia a ella, puedes acceder a los datos del usuario y actualizarlos.

El ciclo de vida del usuario

La forma recomendada de realizar un seguimiento del estado actual de la instancia de Auth es usar objetos de escucha (también denominados “observadores” en JavaScript). Un objeto de escucha de Auth recibe notificaciones cuando sucede algo importante en el objeto de Auth. Consulta “Administra usuarios” (para iOS, Android y la Web).

Un agente de escucha de Auth recibe notificaciones en las siguientes situaciones:

  • Cuando el objeto Auth termina de inicializarse y ya hay un usuario con sesión activa, o este mismo se ha redireccionado de un flujo de acceso de un proveedor de identidad.
  • Cuando un usuario accede a su cuenta (el usuario activo está configurado).
  • Cuando un usuario sale de su sesión (el usuario activo pasa a ser nulo).
  • Cuando se actualiza el token de acceso del usuario. Esto puede suceder en las siguientes condiciones:
    • Cuando el token de acceso caduca: es una situación común. El token de actualización se usa para obtener un nuevo conjunto válido de tokens.
    • Cuando el usuario cambia la contraseña: Firebase emite tokens de acceso y de actualización nuevos, y hace que caduquen los tokens antiguos. Este proceso hace que los tokens del usuario caduquen o que se cierre sesión en todos los dispositivos automáticamente, por motivos de seguridad.
    • Cuando el usuario vuelve a autenticarse: algunas acciones requieren que las credenciales del usuario se hayan emitido recientemente, como borrar una cuenta, configurar una dirección de correo electrónico principal y cambiar una contraseña. En lugar de salir de la sesión del usuario y volver a acceder, obtén credenciales nuevas y pásalas al método de renovación de autenticación del objeto de usuario.

Tokens de autenticación

Cuando realizas la autenticación con Firebase, puedes encontrar las siguientes tres clases de tokens de autenticación:

Tokens de ID de Firebase Creados por Firebase cuando un usuario accede a una app. Estos tokens son JWT firmados que identifican de manera segura a un usuario en un proyecto de Firebase. Estos tokens contienen información de perfil básica de un usuario, incluida la string de ID del usuario, que es exclusiva del proyecto de Firebase. Gracias a que la integridad de los tokens de ID se puede verificar, puedes enviarlos a un servidor de backend para identificar al usuario activo.
Tokens del proveedor de identidad Se crean a través de proveedores de identidades federadas, como Google y Facebook. Estos tokens pueden tener diferentes formatos, pero frecuentemente son tokens de acceso de OAuth 2.0. Las apps los usan para verificar que los usuarios se hayan autenticado de forma correcta a través del proveedor de identidad y luego convertirlos en credenciales que puedan usarse con servicios de Firebase.
Tokens personalizados de Firebase Se crean a través de tu sistema personalizado de autenticación para permitir que los usuarios accedan a una app mediante tu sistema de autenticación. Los tokens personalizados son JWT firmados con la clave privada de una cuenta de servicio. Las apps dan a estos tokens un uso muy similar al de los tokens obtenidos a través de los proveedores de identidad federada.

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.