Ir a la consola

Primeros pasos con Firebase Authentication en iOS

Puedes usar Firebase Authentication para permitir que los usuarios accedan a la app con uno o más métodos de acceso, que incluyen el acceso con dirección de correo electrónico y contraseña, y proveedores de identidad federada, como Acceso con Google y Acceso con Facebook. Este instructivo te muestra cómo agregar un acceso con dirección de correo electrónico y contraseña a la app para comenzar con Firebase Authentication.

Conecta tu app a Firebase

  1. Instala el SDK de Firebase.
  2. En Firebase console, agrega tu app al proyecto de Firebase.

Agrega Firebase Authentication a tu proyecto de Xcode

Asegúrate de que las siguientes dependencias se encuentren en el Podfile de tu proyecto:

pod 'Firebase/Analytics'
pod 'Firebase/Auth'

Luego, ejecuta pod install y abre el archivo .xcworkspace creado.

Inicializa el SDK de Firebase

En el delegado de tu app, importa en primer lugar el SDK de Firebase:

Swift

import Firebase

Objective-C

@import Firebase;

Luego, en el método application:didFinishLaunchingWithOptions:, inicializa el objeto FirebaseApp:

Swift

// Use Firebase library to configure APIs
FirebaseApp.configure()

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

Detecta el estado de autenticación

Para cada vista de tu app que necesite información sobre el usuario que accedió, adjunta un objeto de escucha al objeto FIRAuth. Se llamará a este objeto de escucha cada vez que cambie el estado de acceso del usuario.

Adjunta el objeto de escucha en el método viewWillAppear del controlador de vista:

Swift

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

Objective-C

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

Además, desvincula el objeto de escucha del método viewWillDisappear del controlador de vista:

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Registra usuarios nuevos

Crea un formulario que permita a los usuarios nuevos registrarse en tu app mediante su dirección de correo electrónico y una contraseña. Cuando un usuario complete el formulario, valida la dirección de correo electrónico y la contraseña que proporcionó el usuario para después pasarlas al método createUser:

Swift

Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
  // ...
}

Objective-C

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

Acceso de usuarios existentes

Crea un formulario que permita a los usuarios existentes acceder con su dirección de correo electrónico y una contraseña. Cuando un usuario complete el formulario, llama al método signIn:

Swift

Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
  guard let strongSelf = self else { return }
  // ...
}

Objective-C

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

Obtén información del usuario

Cuando un usuario acceda correctamente, podrás obtener información sobre él. Por ejemplo, en el objeto de escucha del estado de autenticación, haz lo siguiente:

Swift

if 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

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;
  // ...
}

Próximos pasos

Obtén información sobre cómo admitir otros proveedores de identidad y cuentas de invitado anónimas: