Ir a la consola

Administra usuarios en Firebase

Crea un usuario

Para crear un nuevo usuario en tu proyecto de Firebase, puedes llamar al método createUserWithEmail:password:completion: 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 Usuarios.

Obtén el usuario con sesión activa

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

Swift

handle = Auth.auth().addStateDidChangeListener { (auth, user) in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

Cuando usas un agente de escucha, se garantiza que el objeto Auth no esté en un estado intermedio, como la inicialización, cuando obtengas el usuario actual.

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:

Swift

if Auth.auth().currentUser != nil {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

Objective-C

if ([FIRAuth auth].currentUser) {
  // 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 FIRUser. Por ejemplo:

Swift

let user = Auth.auth().currentUserif let user = user {
  // 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 getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  // ...
}

Objective-C

FIRUser *user = [FIRAuth auth].currentUser;if (user) {
  // 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 getTokenWithCompletion:completion: instead.
  NSString *uid = user.uid;
  NSString *email = user.email;
  NSURL *photoURL = user.photoURL;
  // ...
}

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

Para obtener la información de perfil recuperada de los proveedores de acceso vinculados con un usuario, puedes usar la propiedad providerData. Por ejemplo:

Swift

let userInfo = Auth.auth().currentUser?.providerData[indexPath.row]
cell?.textLabel?.text = userInfo?.providerID
// Provider-specific UID
cell?.detailTextLabel?.text = userInfo?.uid

Objective-C

id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row];
cell.textLabel.text = [userInfo providerID];
// Provider-specific UID
cell.detailTextLabel.text = [userInfo uid];

Actualiza el perfil de un usuario

Para actualizar la información de perfil básica de un usuario (el nombre visible y la URL de la foto de perfil), puedes usar la clase FIRUserProfileChangeRequest. Por ejemplo:

Swift

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = displayName
changeRequest?.commitChanges { (error) in
  // ...
}

Objective-C

FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest];
changeRequest.displayName = userInput;
[changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

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

Puedes configurar la dirección de correo electrónico de un usuario con el método updateEmail:completion:. Por ejemplo:

Swift

Auth.auth().currentUser?.updateEmail(to: email) { (error) in
  // ...
}

Objective-C

[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

Envía un mensaje de verificación al usuario

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

Swift

Auth.auth().currentUser?.sendEmailVerification { (error) in
  // ...
}

Objective-C

[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

Puedes personalizar la plantilla de correo electrónico que se usa en la sección Authentication 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, para localizar el correo electrónico de verificación, puedes actualizar el código de idioma en la instancia de Auth antes de enviarlo. Por ejemplo:

Swift

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

Objective-C

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

Configura la contraseña de un usuario

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

Swift

Auth.auth().currentUser?.updatePassword(to: password) { (error) in
  // ...
}

Objective-C

[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

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

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

Swift

Auth.auth().sendPasswordReset(withEmail: email) { error in
  // ...
}

Objective-C

[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

Puedes personalizar la plantilla de correo electrónico que se usa en la sección Authentication 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 restablecimiento de la contraseña.

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

Swift

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

Objective-C

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

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 deleteWithCompletion. Por ejemplo:

Swift

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}

Objective-C

FIRUser *user = [FIRAuth auth].currentUser;

[user deleteWithCompletion:^(NSError *_Nullable error) {
  if (error) {
    // An error happened.
  } else {
    // Account deleted.
  }
}];

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

Vuelve a autenticar a 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ó a su cuenta recientemente. Si transcurrió demasiado tiempo desde que el usuario accedió a su cuenta, cualquier intento de realizar estas acciones fallará con el mensaje de error FIRAuthErrorCodeCredentialTooOld. Cuando esto sucede, es necesario obtener nuevas credenciales de acceso del usuario y pasarlas a reauthenticate para volver a autenticar la sesión. Por ejemplo:

Swift

let user = Auth.auth().currentUser
var credential: AuthCredential

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

user?.reauthenticate(with: credential) { error in
  if let error = error {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}

Objective-C

FIRUser *user = [FIRAuth auth].currentUser;
FIRAuthCredential *credential;

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

[user reauthenticateWithCredential:credential completion:^(NSError *_Nullable error) {
  if (error) {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}];

Importa cuentas de usuario

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

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