Administra usuarios en Firebase

Crea un usuario

Para crear un usuario nuevo en tu proyecto de Firebase, puedes llamar al método createUserWithEmailAndPassword o hacer que el usuario acceda por primera vez con un proveedor de identidad federada, como Acceso con Google o Acceso con Facebook.

También puedes crear nuevos usuarios autenticados con contraseña en la sección Authentication de Firebase console, en la página de usuarios, o bien con el SDK de Admin.

Obtén el usuario con sesión activa

La manera recomendada de obtener el usuario actual es establecer un observador en el objeto Auth:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

Cuando usas un observador, te aseguras de que el objeto Auth no esté en un estado intermedio, como la inicialización, cuando obtengas el usuario actual. Cuando utilizas signInWithRedirect, el observador de onAuthStateChanged espera hasta que getRedirectResult se resuelva antes de activarse.

También puedes usar la propiedad currentUser para obtener el usuario que accedió. Si no accedió ningún usuario, el valor de currentUser es nulo:

var user = firebase.auth().currentUser;

if (user) {
  // User is signed in.
} else {
  // No user is signed in.
}

Obtén el perfil de un usuario

Para obtener la información del perfil de un usuario, puedes usar las propiedades de una instancia de User. Por ejemplo:

var user = firebase.auth().currentUser;
var name, email, photoUrl, uid, emailVerified;

if (user != null) {
  name = user.displayName;
  email = user.email;
  photoUrl = user.photoURL;
  emailVerified = user.emailVerified;
  uid = user.uid;  // The user's ID, unique to the Firebase project. Do NOT use
                   // this value to authenticate with your backend server, if
                   // you have one. Use User.getToken() instead.
}

Obtén la información de perfil de un usuario de un proveedor específico

Para obtener la información de perfil vinculada con un usuario recuperada del proveedor de acceso, puedes usar la propiedad providerData. Por ejemplo:

var user = firebase.auth().currentUser;

if (user != null) {
  user.providerData.forEach(function (profile) {
    console.log("Sign-in provider: " + profile.providerId);
    console.log("  Provider-specific UID: " + profile.uid);
    console.log("  Name: " + profile.displayName);
    console.log("  Email: " + profile.email);
    console.log("  Photo URL: " + profile.photoURL);
  });
}

Actualiza el perfil de un usuario

Puedes actualizar información básica del perfil de usuario (el nombre visible y la URL de la foto de perfil del usuario) con el método updateProfile. Por ejemplo:

var user = firebase.auth().currentUser;

user.updateProfile({
  displayName: "Jane Q. User",
  photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

Configura la dirección de correo electrónico de un usuario

Para configurar la dirección de correo electrónico de un usuario, puedes usar el método updateEmail. Por ejemplo:

var user = firebase.auth().currentUser;

user.updateEmail("user@example.com").then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

Envía un mensaje de verificación al usuario

Para enviar un mensaje de verificación de dirección a un usuario, puedes usar el método sendEmailVerification. Por ejemplo:

var user = firebase.auth().currentUser;

user.sendEmailVerification().then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

Puedes personalizar la plantilla de correo electrónico que se usa en la sección Autenticación de Firebase console, en la página Plantillas de correo electrónico. Consulta Plantillas de correo electrónico en el Centro de ayuda de Firebase.

También es posible pasar el estado a través de una URL de continuación para regresar a la app cuando se envía un correo electrónico de verificación.

Además, puedes localizar el correo electrónico de verificación actualizando el código de idioma en la instancia de Auth antes de enviarlo. Por ejemplo:

firebase.auth().languageCode = 'fr';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();

Configura la contraseña de un usuario

Para configurar la contraseña de un usuario, puedes usar el método updatePassword. Por ejemplo:

var user = firebase.auth().currentUser;
var newPassword = getASecureRandomPassword();

user.updatePassword(newPassword).then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

Envía un correo electrónico de restablecimiento de la contraseña

Para enviar un correo electrónico de restablecimiento de la contraseña a un usuario, puedes usar el método sendPasswordResetEmail. Por ejemplo:

var auth = firebase.auth();
var emailAddress = "user@example.com";

auth.sendPasswordResetEmail(emailAddress).then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

Puedes personalizar la plantilla de correo electrónico que se usa en la sección Autenticación de Firebase console, en la página Plantillas de correo electrónico. Consulta Plantillas de correo electrónico en el Centro de ayuda de Firebase.

También es posible pasar el estado a través de una URL de continuación para redireccionar de vuelta a la app cuando se envía un correo electrónico de restablecimiento de la contraseña.

Además, puedes localizar el correo electrónico de restablecimiento de la contraseña al actualizar el código de idioma en la instancia de Auth antes de enviarlo. Por ejemplo:

firebase.auth().languageCode = 'de';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();

También puedes enviar correos electrónicos de restablecimiento de contraseña desde Firebase console.

Borra un usuario

Para borrar una cuenta de usuario, puedes usar el método delete. Por ejemplo:

var user = firebase.auth().currentUser;

user.delete().then(function() {
  // User deleted.
}).catch(function(error) {
  // An error happened.
});

También puedes borrar usuarios en la sección Autenticación de Firebase console, en la página Usuarios.

Vuelve a autenticar un usuario

Por motivos de seguridad, algunas acciones (como borrar una cuenta, configurar una dirección de correo electrónico principal y cambiar una contraseña) no pueden realizarse si el usuario no accedió recientemente. Si transcurrió demasiado tiempo desde que el usuario accedió a su cuenta, cualquier intento de realizar estas acciones fallará. Cuando esto suceda, debes volver a autenticar al usuario. Para ello, obtén credenciales de acceso nuevas del usuario y pásalas a reauthenticateWithCredential. Por ejemplo:

var user = firebase.auth().currentUser;
var credential;

// Prompt the user to re-provide their sign-in credentials

user.reauthenticateAndRetrieveDataWithCredential(credential).then(function() {
  // User re-authenticated.
}).catch(function(error) {
  // An error happened.
});

Importa cuentas de usuario

Para importar cuentas de usuario al proyecto de Firebase desde un archivo, puedes usar el comando auth:import de Firebase CLI. Por ejemplo:

firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14

Enviar comentarios sobre...

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